본문 바로가기

개발자가 좋은건가??/Database

[MSSQL] 컬럼 생성, 수정

[MSSQL] 컬럼 생성, 수정, 삭제




2018. 08. 16 기준


컬럼 추가

1
2
3
4
5
6
7
ALTER TABLE '테이블이름' ADD '컬럼이름' '컬럼타입'
 
ALTER TABLE USER ADD MARRY_YN CHAR(1NULL;
--MARRY_YN컬럼생성, CHAR타입, NULL 허용
 
ALTER TABLE USER ADD MARRY_YN CHAR(1NOT NULL CONSTRAINT DF_MARRY DEFAULT 'N'
--MARRY_YN컬럼생성, CHAR타입, NOT NULL 허용하지않음 , CONSTRAINT DF_MARRY 제약조건이름, DEFAULT 'N'
cs

 

컬럼 수정

1
2
3
4
5
6
7
8
9
10
ALTER TABLE '테이블이름' ALTER COLUMN '컬럼이름' '컬럼타입'
 
ALTER TABLE USER ALTER COLUMN MARRY_YN VARCHAR(1NULL;
--MARRY_YN컬럼을 VARCHAR타입을 변경
 
 
SP_RENAME '테이블이름.[기본컬럼명]' ,'변경할컬럼명''COLUMN'
 
SP_RENAME 'USER.[MARRY_YN]' ,'MRY_YN''COLUMN'
--USER테이블의 MARRY_YN컬럼을 MRY_YN 으로 
cs

 

컬럼 삭제

1
2
3
4
ALTER TABLE '테이블이름' DROP COLUMN '컬럼이름'
 
ALTER TABLE USER DROP COLUMN MARRY_YN;
--USER 테이블의 MARRY_YN 컬럼 삭제
cs

 

컬럼 코멘트 추가

1
2
3
4
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'컬럼코멘트이름' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'테이블이름', @level2type=N'COLUMN',@level2name=N'컬럼이름'
 
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'결혼여부' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'USER', @level2type=N'COLUMN',@level2name=N'MARRY_YN'
--USER테이블의 MARRY_YN컬럼 코멘트 이름을 결혼여부로 생성
cs

 


그럼 코멘트 이름도 확인해 봐야겠죠

1
2
3
SELECT OBJTYPE, OBJNAME, NAME, VALUE
FROM ::FN_LISTEXTENDEDPROPERTY(NULL'SCHEMA''DBO''TABLE''USER''COLUMN'DEFAULT);
--USER 테이블의 컬럼 코멘트 이름을 확인
cs

 

아!! 상단의 컬럼 추가시 제약조건이름을 지정하는데

지정없이 생성하셔도 되고 만약 생성하셨다면

1
2
SP_HELPCONSTRAINT 'USER'
--USER 테이블의 제약조건 이름 
cs

이 명령어로 조회 하시면 정상적으로 등록이 되었는지

확인가능합니다.

감사합니다.