본문 바로가기

SQL

[mssql] 기존 테이블에 PK키 추가하기 mssql에서 PK를 추가하려면 기존의 PK를 삭제해주고 재생성해줘야한다. mytable에 PK을 하나 더 추가하려고 PK 추가 구문을 아래와 같이 호출하면, 아래와 같이 이미 기본키가 정의되었다는 에러메세지가 나오면서 실패한다. ALTER TABLE [dbo].[mytable] ADD CONSTRAINT [PK_mytable] PRIMARY KEY CLUSTERED ( [otherPKColumn] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]..
[mssql] insert into select 사용하기 다음과 같은 상황이 있다. 1. table_1의 특정 컬럼값(Coupon)을 table_2에 인서트하고 싶을때. 2. table_2에 다른 컬럼(RegDate)이 있어서 고정된 값('2019-03-04')을 넣어줘야 할때. 3. 인서트하는 pk 컬럼(AccountNo)이 있어서 인서트 row마다 값을 임의로 지정해줘야 할때. (table_2 인덱스 넘버에서 1씩 추가 하는 것으로지정) 이때 서브쿼리처럼 조회 쿼리를 생성해서 insert할 수 있다. INSERT INTO [table_2] (AccountNo, Coupon, RegDate) (SELECT (SELECT MAX(Seq) FROM [table_2])+(ROW_NUMBER() OVER(Order BY @@identity)), Coupon, '20..
[mssql] id값 인서트하기 인서트 전에 테이블 id 인서트 옵션을 on 해줘야한다 SET IDENTITY_INSERT [table] ON; INSERT INTO [table](IDX, COL1, COL2) VALUES(1, 1, 2); SET IDENTITY_INSERT [table] OFF;
[mssql] 데이터별 갯수 확인 쿼리 집계 데이터중에서 특정갯수만큼의 열을 갖고있는 데이터를 확인하고싶으면 having을 통해 확인하면된다 SELECT [varchar_col] FROM [table] GROUP BY [varchar_col] HAVING count(*) > 1; group by 인자가 여러개일경우 순서에 따라서 집계된다.