[MSSQL] 컬럼 추가, 변경 방법 (Alter Table)

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이 존재하면 오류가 발생한다.

 

 

[MSSQL] 테이블 컬럼 순서 변경 방법 (위치 변경)

SQL Server에서 테이블의 칼럼 위치를 변경하기 위해서는 SSMS 관리 툴을 사용해야 한다. 오라클이나 MySQL처럼 쿼리문으로 칼럼의 위치를 변경할 수 없다. 칼럼의 위치를 변경하기 전에 디자이너 옵

gent.tistory.com

 

[MSSQL] 테이블 생성 방법 2가지 (Create Table)

SQL Server에서 테이블을 생성할 때는 대부분 CREATE TABLE 문을 사용해서 테이블을 생성한다. 그러나 SQL 문이 익숙하지 않을 때는 SSMS 툴을 사용하면 조금 더 쉽게 테이블을 생성하거나 테이블 속성을

gent.tistory.com

 

댓글

Designed by JB FACTORY