SQL Server에서 칼럼의 NOT NULL 제약조건을 추가하여 NULL을 입력하지 못하게 하거나, NULL을 허용하도록 하기 위해서는 ALTER TABLE~ALTER COLUMN~ 구문을 사용하면 된다. 신규 칼럼을 추가할 때 NOT NULL 제약조건을 부여하여 추가할 수 있지만, 이미 존재하는 칼럼의 속성을 바꿀 때는 아래를 참고하면 된다. 목차 칼럼 NOT NULL 제약 조건 추가, 제거 칼럼 NOT NULL 추가 시 주의사항 칼럼 NOT NULL 제약 조건 추가, 제거 NOT NULL 추가 ALTER TABLE dbo.emp ALTER COLUMN ret_yn VARCHAR(1) NOT NULL ALTER TABLE [테이블명] ALTER COLUMN [칼럼명] [데이터타입] NOT NULL 테..
SQL Server에서 테이블의 칼럼 위치를 변경하기 위해서는 SSMS 관리 툴을 사용해야 한다. 오라클이나 MySQL처럼 쿼리문으로 칼럼의 위치를 변경할 수 없다. 칼럼의 위치를 변경하기 전에 디자이너 옵션을 변경 후 작업을 수행하는 것이 좋다. (도구 메뉴 → 옵션 → 디자이너 → 테이블을 다시 만들어야 하는 변경 내용 저장 안 함 해제) 목차 테이블 칼럼 위치 변경 방법 디자이너 설정 변경 방법 (오류 해결) 테이블 칼럼 위치 변경 방법 1. 변경할 테이블에서 마우스 오른쪽 메뉴 "디자인" 클릭 2. 위치를 변경할 칼럼을 클릭해서 드래그하여 이동시킨다 3. 상단 디스켓 모양의 "저장 버튼"을 눌러서 저장한다 디자이너 옵션을 변경하지 않았다면, 아래의 오류 메시지가 발생할 수 있다. 변경 내용을..
SQL Server에서 테이블 인덱스 정보를 조회해야 할 경우가 있다. sp_helpindex 시스템 저장 프로시저와 sys.indexes 시스템 테이블을 활용하면 인덱스 정보를 쉽게 조회할 수 있다. 아래의 2가지 방법을 사용하면 인덱스명과 인덱스 칼럼을 확인할 수 있으니 참고하면 된다. 목차 시스템 저장 프로시저로 인덱스 조회 (sp_helpindex) 시스템 테이블로 인덱스 조회 (sys.indexes) 시스템 저장 프로시저로 인덱스 조회 (sp_helpindex) EXEC sp_helpindex 'emp' EXEC sp_helpindex [테이블명] 시스템 저장 프로시저를 사용하면 인덱스명과 인덱스 칼럼을 빠르고 간편하게 조회할 수 있다. 시스템 테이블로 인덱스 조회 (sys.indexes) SE..
SQL Server에서 쿼리 문의 실행 계획을 보면 잘못된 인덱스를 타서 조회 속도가 느린 경우가 간혹 발생한다. 이럴 경우 인덱스 힌트를 강제로 부여하여 실행 계획을 바꾸면 조회 속도가 빨라지는 경우가 있다. 인덱스 힌트를 강제로 부여하는 방법은 권장하는 방법이 아니며 옵티마이저에 의한 최적의 실행 계획으로 쿼리문이 실행되도록 하는 것이 좋다. 목차 인덱스 힌트 사용법 쿼리문 실행 계획 보는 법 인덱스 힌트 사용법 SELECT * FROM emp WITH (INDEX(emp_idx01)) WHERE hiredate BETWEEN '1981-01-01' AND '1981-12-31' FROM [테이블명] WITH (INDEX([인덱스명])) 인덱스 힌트를 사용했을 경우와 사용하지 않았을 경우 쿼리문 실행..
SQL Server에서 인덱스를 생성하기 위해서는 CREATE INDEX 문을 사용한다. 인덱스를 생성한 후 변경하는 명령은 없으며 인덱스를 삭제 후 다시 생성하는 방법을 사용해야 한다. 인덱스는 클러스터형과 비클러스터형 인덱스가 있으며, 클러스터형 인덱스는 테이블에 하나만 생성이 가능하며, 비클러스터형 인덱스는 여러 개를 생성할 수 있다. 일반적인 인덱스 생성은 비클러스터형 인덱스를 생성한다고 생각하면 된다. 목차 인덱스 생성, 삭제 방법 인덱스 변경 방법 인덱스 조회 클러스터형, 비클러스터형 인덱스 인덱스 생성, 삭제 방법 인덱스 생성 CREATE INDEX emp_idx01 ON dbo.emp (hiredate) CREATE INDEX [인덱스명] ON [테이블명] ([칼럼1], [칼럼2], [칼럼..
SQL Server에서 기본 키(PRIMARY KEY)를 생성하거나 변경하기 위해서는 ALTER TABLE 문을 사용하여 제약조건을 생성하거나 삭제 후 재생성하면 된다. PK로 지정할 칼럼은 꼭 NOT NULL 속성을 가져야 하며, PK 칼럼을 변경해야 할 경우 속성 변경은 불가능하며 삭제 후 다시 생성해야 한다. 목차 PK 생성 방법 PK 변경 방법 (삭제 후 재생성) PK 삭제 방법 PK 조회 방법 PK 생성 방법 ALTER TABLE dbo.emp ADD CONSTRAINT emp_pk PRIMARY KEY (empno) ALTER TABLE [테이블명] ADD CONSTRAINT [PK제약조건명] PRIMARY KEY ([칼럼1], [칼럼2], [칼럼3] ...) PK로 지정할 칼럼은 속성이 NO..
SQL Server에서 테이블, 칼럼의 코멘트를 추가하거나 변경하기 위해서는 시스템 저장 프로시저를 사용하면 된다. 시스템 저장 프로시저는 SP_ADDEXTENDEDPROPERTY(추가), SP_UPDATEEXTENDEDPROPERTY(수정), SP_DROPEXTENDEDPROPERTY(삭제) 3개의 프로시저를 사용한다. 칼럼에 코멘트를 추가한 후에는 수정, 삭제 프로시저만 사용할 수 있다. 목차 칼럼 코멘트 추가, 수정, 삭제 칼럼 코멘트 일괄 추가 및 조회 테이블 코멘트 추가 및 조회 칼럼 코멘트 추가, 수정, 삭제 /* 컬럼 코멘트 추가 */ EXEC SP_ADDEXTENDEDPROPERTY 'MS_Description', '직원번호', 'USER', dbo, 'TABLE', emp, 'COLUMN..
SQL Server에서 칼럼의 기본 값(DEFAULT)을 설정하기 위해서는 DEFAULT 제약 조건을 생성하면 된다. 칼럼에 DEFAULT를 설정해 놓으면 데이터가 입력될 때 해당 칼럼에 값이 없을 경우 DEFAULT에 설정된 값이 자동으로 입력된다. DEFAULT를 추가하거나 변경(제거 후 다시 추가)하는 방법은 아래를 참고하면 된다. DEFAULT 추가 ALTER TABLE dbo.emp ADD CONSTRAINT df_emp_job DEFAULT 'NONE' FOR job ALTER TABLE [스키마.테이블명] ADD CONSTRAINT [제약조건명] DEFAULT [기본값] FOR [칼럼명] 제약 조건명은 임의로 정하여 입력하면 되고, 기본 값은 DEFAULT '기본값' 또는 DEFAULT('기..
SQL Server에서 테이블의 칼럼을 추가, 변경, 삭제를 하기 위해서는 ALTER TABLE 문을 사용하면 된다. ALTER COLUMN 을 사용하면 칼럼 사이즈, 데이터 타입을 변경할 수 있다. 신규 칼럼을 추가하면 테이블의 마지막 칼럼에 추가되는데, 특정 칼럼의 사이에 추가하고 싶으면 SSMS 관리 툴을 사용하여 칼럼을 추가하면 된다. 이미 추가된 칼럼도 SSMS 관리 툴을 사용하여 칼럼 순서를 변경할 수 있다. 칼럼 추가 ALTER TABLE dbo.emp ADD email VARCHAR(25) 칼럼 삭제 ALTER TABLE dbo.emp DROP COLUMN email 데이터 사이즈 변경 // VARCHAR(25) -> VARCHAR(100) ALTER TABLE dbo.emp ALTER C..
SQL Server에서 테이블을 생성할 때는 대부분 CREATE TABLE 문을 사용해서 테이블을 생성한다. 그러나 SQL 문이 익숙하지 않을 때는 SSMS 툴을 사용하면 조금 더 쉽게 테이블을 생성하거나 테이블 속성을 변경할 수 있다. 아래는 emp 테이블과 dept 테이블을 생성하는 예제이다. 목차 CREATE TABLE 문으로 테이블 생성 SSMS 툴을 사용하여 테이블 생성 CREATE TABLE 문으로 테이블 생성 CREATE TABLE emp ( empno INT NOT NULL PRIMARY KEY, ename VARCHAR(10), job VARCHAR(9), mgr INT, hiredate DATE, sal NUMERIC(7, 2), comm NUMERIC(7, 2), deptno INT ..