본문 바로가기

DB,DW/SQL Server4

[SQL Server] While반복문 인서트(Insert) While 반복문 사용하면 좋은 점? SQL Server(MSSQL)에서 While 반복문이 실행 가능한데요. 이를 활용하면 테이블 간 대용량 데이터 INSERT 시 N건씩 나누어 INSERT를 할 수 있습니다. 나누어 INSERT하는 이유는 두 가지가 있을텐데요 데드락 방지 중간 실행 취소될 경우 롤백 범위 축소 데드락 방지 예를 들어 1억건의 데이터를 한 번에 A테이블에서 B테이블로 넣는데 1시간이 소요된다고 할 때, A,B 테이블들에 LOCK이 걸려 병합이 일어나 다른 세션을 통한 접근 시 에러가 발생하거나 데드락이 걸려버리게 됩니다. 중간 실행 취소될 경우 롤백 범위 축소 1억건 중 9천만건이 들어가고, 1천만건이 남은 상황에서 서버에 문제가 생기거나 네트워크 문제로 DML문이 취소되는 경우, 이.. 2023. 9. 5.
[SQL Server]"IDENTITY_INSERT가 OFF로 설정되면 테이블의 ID 열에 명시적 값을 삽입할 수 없습니다" 에러 해결 ERROR 자동 증가 컬럼이 설정되어 있는 테이블에 INSERT 시 컬럼명 명시를 해주지 않거나, 자동 증가 컬럼에 임의로 값을 넣고 싶을 때 아래와 같은 에러가 나는 경우가 있습니다. IDENTITY_INSERT가 OFF로 설정되면 테이블 '~~~'의 ID 열에 명시적 값을 삽입할 수 없습니다. SOLUTION 자동 증가 컬럼 테이블에 INSERT 하기 위해선 해당 테이블의 IDENTITY_INSERT 설정을 ON 상태로 변경해줘야 합니다. SET IDENTITY_INSERT {테이블명} ON INSERT INTO {테이블명}({컬럼명1},{컬럼명2},{컬럼명3},...) VALUES ({값1},{값2},{값3},...) SET IDENTITY_INSERT {테이블명} OFF -- 예시 SET IDEN.. 2023. 9. 1.
[SQL Server]ALTER TABLE 컬럼 추가/수정/삭제/제약조건(PK) 추가 ALTER TABLE 컬럼과 제약 조건을 변경, 추가 또는 삭제하거나 파티션을 재할당하거나 제약 조건과 트리거를 설정 또는 해제하여 테이블 정의를 수정하는 구문이다. 예제 쿼리문 ALTER TABLE 구문 중 실무에서 가장 많이 사용했던 쿼리문 위주로 정리해봤습니다. 컬럼 추가 컬럼명 뒤에 데이터 타입을 지정해주지 않아도 생성은 되고, NULL 제약 조건을 쓰지 않으면 DEFAULT로 NULL이 설정됩니다. ALTER TABLE {테이블명} ADD {컬럼명} {NULLABLE} -- 예시 ALTER TABLE TBL_1 ADD COL_1 NOT NULL 정확한 데이터 타입을 지정하여 컬럼 생성해주는 쿼리문입니다. NULLABLE 제약조건 뒤에 DAFAULT 값도 지정해 줄 수 있습니다. DEFAULT 값.. 2023. 9. 1.
[SQL 기초]쿼리문(SELECT) 실행 순서 목차1. 쿼리 실행 순서2. 기본적인 조회 쿼리문쿼리 실행 순서우선 기본적인 쿼리 진행 순서를 아셔야 쿼리 작성 시 헷갈리지 않기 때문에 간단히 정리하며 넘어갑니다.위 그림은 기본적인 쿼리문 구조입니다.작성 순서는 위에서 부터 SELECT - FROM - WHERE - GROUP BY - HAVING - ORDER BY 순서로 작성됩니다. 하지만 실제 실행되는 순서는 작성 순서와 다릅니다.  ◆ 실제 실행 순서1. (필수) FROM: 필요한 데이터가 적재되어 있는 테이블에 접근하는 단계2. (선택) WHERE: 원하는 조건에 해당되는 데이터만 보기 위해 데이터를 필터링하는 단계3. (선택) GROUP BY: GROUP BY에서 명시한 컬럼들 기준으로 집계4. (선택) HAVING: 집계 함수 조건문 명시.. 2023. 8. 28.
반응형