[MSSQL] 컬럼 추가, 변경 방법 (Alter Table)
- 데이터베이스/MSSQL
- 2022. 4. 11.
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 COLUMN email VARCHAR(100)
데이터 타입 변경 // VARCHAR(50) -> TEXT
ALTER TABLE dbo.emp ALTER COLUMN email TEXT
ALTER TABLE [테이블명] ALTER COLUMN [칼럼명] [변경할 데이터 타입]
NOT NULL 설정 또는 제거
-- NOT NULL 설정
ALTER TABLE dbo.emp ALTER COLUMN email VARCHAR(25) NOT NULL
-- NOT NULL 제거
ALTER TABLE dbo.emp ALTER COLUMN email VARCHAR(25)
기존 칼럼에 NOT NULL을 설정할 경우 테이블에 NULL로 입력된 데이터가 있으면 오류가 발생한다. 해당 칼럼에 NULL이 존재하지 않도록 UPDATE를 수행 후 변경해야 한다.
DEFAULT 값 설정 또는 제거
-- DEFAULT값 설정
ALTER TABLE dbo.emp ADD CONSTRAINT df_emp_email DEFAULT 'None' FOR email
-- DEFAULT값 제거
ALTER TABLE dbo.emp DROP CONSTRAINT df_emp_email
ALTER TABLE [테이블명] ADD CONSTRAINT [제약조건명] DEFAULT [기본값] FOR [칼럼명]
제약조건 명은 임의로 부여하면 된다.
PK 생성 또는 삭제
-- PK 생성
ALTER TABLE dbo.emp ADD CONSTRAINT pk_emp PRIMARY KEY (empno)
-- PK 삭제
ALTER TABLE dbo.emp DROP CONSTRAINT pk_emp
ALTER TABLE [테이블명] ADD CONSTRAINT [PK명] PRIMARY KEY ([칼럼1], [칼럼2] ...)
PK 명은 임의로 부여하면 된다. PK는 수정은 불가능하며 생성 또는 삭제만 가능하다.
칼럼 추가 (NOT NULL, DEFAULT 설정)
-- 컬럼 추가 (NOT NULL 설정)
ALTER TABLE dbo.emp ADD email VARCHAR(25) NOT NULL
-- 컬럼 추가 (DEFAULT 값 설정)
ALTER TABLE dbo.emp ADD email VARCHAR(25) DEFAULT 'None'
-- 컬럼 추가 (NOT NULL 설정 + DEFAULT 값 설정)
ALTER TABLE dbo.emp ADD email VARCHAR(25) NOT NULL DEFAULT 'None'
테이블에 데이터가 있는 상태에서 칼럼을 추가하거나 변경할 때 NOT NULL 설정은 주의해야 한다. 해당 칼럼에 NULL이 존재하면 오류가 발생한다.