개발 기록이
[MSSQL] 테이블 복사, 컬럼 추가, 변경, 삭제 본문
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-컬럼-변경-추가-삭제-속성변경-컬럼명-변경
'기록 > DB' 카테고리의 다른 글
[MySQL] group_concat 으로 문자열 결합하기 (0) | 2024.11.14 |
---|---|
[Oracle] DECODE, CASE 조건문 처리 (0) | 2024.10.06 |
[MySQL] mybatis로 ROWNUM 생성하기 (0) | 2024.02.08 |
[Mybatis] <sql>, <include> 를 이용한 중복쿼리 묶기 (0) | 2023.09.28 |
[MySQL] 딕셔너리, 메타데이터란? (0) | 2022.11.16 |