개발 기록이

[MSSQL] 테이블 복사, 컬럼 추가, 변경, 삭제 본문

기록/DB

[MSSQL] 테이블 복사, 컬럼 추가, 변경, 삭제

studyingbackhoe 2024. 12. 30. 19:45

1. 테이블 복사

1) 테이블 복사(테이블 구조 + 데이터)
 
SELECT * INTO [새로 생성할 테이블명] FROM [원본 테이블명]

SELECT * INTO [new_table] FROM [orgin_table]

 
 
2) 테이블 복사(테이블 구조만 복사)
 
SELECT * INTO [새로 생성할 테이블명] FROM [원본 테이블명] WHERE 1=2

SELECT * INTO [new_table] FROM [orgin_table] WHERE 1=2
-- WHERE 1=2 는 항상 false -> 데이터는 복사가 안 됨

 
 
3) 테이블 복사(데이터만 복사)
 
INSERT INTO [복사한 데이터를 넣을 테이블명] SELECT * FROM [원본 테이블명]

INSERT INTO [new_table] SELECT * FROM [origin_table]

 
 
4) 원하는 컬럼의 데이터 복사
 
INSET INTO [복사한 데이터를 넣을 테이블명] (컬럼1, 컬럼2)
SELECT 복사할 컬럼1, 복사할 컬럼2 FROM [원본 테이블명]
 

* 단, 복사한 데이터를 넣을 테이블의 컬럼의 개수, 순서, 데이터 타입이 원본 테이블의 컬럼과 일치해야 한다.
* Primary Key, Foreign Key, 컬럼 default값, Index는 복사가 되지 않기 때문에 복사 쿼리 실행 후 별도로 작업 필요.

INSERT INTO [new_table] (column1, column2) 
SELECT orgin_column1, orgin_column2 FROM [orgin_table]

 
 
 

2. 컬럼 추가, 변경, 삭제

1) 컬럼 추가
 
ALTER TABLE [테이블명] ADD [추가할 컬럼명] [데이터타입] [제약조건]

ALTER TABLE employee_table ADD salary int NULL

 
 
2) 컬럼 속성 변경
 
ALTER TABLE [테이블명] ALTER COLUMN [컬럼명] [변경할 데이터타입] [제약조건]

ALTER TABLE employee_table ALTER COLUMN salary VARCHAR(10) NOT NULL

 
 
3) 컬럼명 변경
 
EXEC SP_RENAME '[테이블명].[변경할 컬럼명]', '[새로운 컬럼명]', 'COLUMN'

EXEC SP_RENAME 'employee_table.salary', 'salary_val', 'COLUMN'
-- salary라는 컬럼명 -> salary_val로 변경

 
 
4) 컬럼 삭제
 
ALTER TABLE [테이블명] DROP COLUMN [삭제할 컬럼명]

ALTER TABLE employ_table DROP COLUMN salary_val

 
 


 
출처 : https://dongpal.tistory.com/10
https://intser.tistory.com/4
https://blog.edit.kr/entry/MSSQL-컬럼-변경-추가-삭제-속성변경-컬럼명-변경