메뉴 건너뛰기

조회 수 186 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

SQL Server에서 기본 테이블에 컬럼을 추가하는 방법은 ALTER를 사용합니다.

ALTER 기본 사용 방법

ALTER TABLE '테이블 이름' ADD '컬럼 이름' '데이터 타입' 'NULL or NOT NULL'

 

샘플 테이블을 만들어 컬럼을 추가해보겠습니다.

 

샘플 테이블 생성

CREATE TABLE TBL_USER
(
	UserNo int NOT NULL DEFAULT (0),
	Name nvarchar(20) NOT NULL DEFAULT (''),
	Addr nvarchar(50) NOT NULL DEFAULT (''),
	Tel nvarchar(15) NOT NULL DEFAULT (''),
	
	CONSTRAINT TBL_USER_PK PRIMARY KEY CLUSTERED
	(
		UserNo
	)
)

테이블 생성

유저 정보를 등록하는 테스트용 테이블을 만들었습니다.

하지만 유저 테이블에 나이를 저장할 컬럼이 없습니다.

추가해보도록 하겠습니다.

 

컬럼 추가 샘플

ALTER TABLE TBL_USER ADD Age int DEFAULT 0

 

결과

컬럼 추가

나이를 저장할 Age라는 컬럼이 추가되었습니다.

하지만 마지막에 추가가 됩니다.

MySQL에서는 기존 테이블에 컬럼을 추가하고 싶은 경우 원하는 위치에 추가하도록 AFTER가 있지만 SQL Server에서는 아쉽게도 컬럼 중간에 추가할 수 있는 명령어가 없습니다.

 

원하는 위치에 컬럼을 추가하고 싶은 경우에는 직접 쿼리를 만들어서 사용해야 합니다.

 

중간에 넣는 쿼리를 만들어 보도록 하겠습니다.

먼저 위에서 사용한 샘플 테이블을 삭제하고 다시 만들겠습니다.

 

샘플 테이블 삭제

DROP TABLE TBL_USER

 

샘플 테이블 생성

CREATE TABLE TBL_USER
(
	UserNo int NOT NULL DEFAULT (0),
	Name nvarchar(20) NOT NULL DEFAULT (''),
	Addr nvarchar(50) NOT NULL DEFAULT (''),
	Tel nvarchar(15) NOT NULL DEFAULT (''),
	
	CONSTRAINT TBL_USER_PK PRIMARY KEY CLUSTERED
	(
		UserNo
	)
)

중간 테이블 생성

 

샘플 데이터 등록

INSERT INTO TBL_USER (UserNo, Name, Addr, Tel) VALUES (1, N'이름 1', N'주소 1', N'전화번호 1')
INSERT INTO TBL_USER (UserNo, Name, Addr, Tel) VALUES (2, N'이름 2', N'주소 2', N'전화번호 2')
INSERT INTO TBL_USER (UserNo, Name, Addr, Tel) VALUES (3, N'이름 3', N'주소 3', N'전화번호 3')
INSERT INTO TBL_USER (UserNo, Name, Addr, Tel) VALUES (4, N'이름 4', N'주소 4', N'전화번호 4')
INSERT INTO TBL_USER (UserNo, Name, Addr, Tel) VALUES (5, N'이름 5', N'주소 5', N'전화번호 5')

데이터 추가

데이터 확인

유저 테이블을 생성하고 확인을 위해 테이터를 작성했습니다.

Name과 Addr 컬럼 사이에 Age컬럼을 추가하도록 하겠습니다.

 

원하는 위치에 컬럼 추가 예제

-- ①TBL_USER 테이블 데이터를 임시 테이블 #Temp에 복사
SELECT * INTO #Temp FROM TBL_USER

-- ②TBL_USER 테이블 삭제
DROP TABLE TBL_USER

-- ③Age 컬럼을 추가해 TBL_USER 테이블 생성
CREATE TABLE TBL_USER
(
	UserNo int NOT NULL DEFAULT (0),
	Name nvarchar(20) NOT NULL DEFAULT (''),
	Age int NOT NULL DEFAULT (0),
	Addr nvarchar(50) NOT NULL DEFAULT (''),
	Tel nvarchar(15) NOT NULL DEFAULT (''),
	
	CONSTRAINT TBL_USER_PK PRIMARY KEY CLUSTERED
	(
		UserNo
	)
)

-- ④임시 테이블 #Temp에서 TBL_USER 테이블로 데이터 복원
INSERT INTO TBL_USER
	SELECT
		Tmp.UserNo,
		Tmp.Name,
		0,
		Tmp.Addr,
		Tmp.Tel
FROM #Temp Tmp

-- ⑤임시 테이블 #Temp 삭제
DROP TABLE #Temp

 

결과

컬럼 중간 추가

컬럼 확인 결과

 

처리를 내용을 보면 TBL_USER 테이블에 저장되어 있는 데이터를 임시 테이블에 복사합니다.

그리고 TBL_USER 테이블을 삭제합니다.

Age컬럼이 추가된 CREATE 문을 실행해 TBL_USER 테이블을 생성합니다.

새로 생성된 TBL_USER 테이블에 임시 테이블에 저장한 데이터를 복사해옵니다.

 

샘플에서는 간단하게 작성했지만 BEGIN TRANSACTION, COMMIT TRANSACTION, ROLLBACK TRANSACTION을 같이 사용하면 좋습니다.


List of Articles
번호 제목 날짜 조회 수
30 MSSQL EXISTS로 서브 쿼리 작성 방법 예제 file 2022.02.16 20
29 MSSQL IN 다중조건 사용 방법 2022.02.16 182
28 MSSQL 테이블 작성 인덱스 생성 하기 file 2022.02.16 53
27 MSSQL CLUSTERED INDEX와 NONCLUSTERED INDEX 차이점 2022.02.16 16
26 MSSQL Primary Key 컬럼 속성 변경 안될때 해결 방법 file 2022.02.16 23
25 MSSQL 컬럼 추가, 변경, 삭제 ALTER 사용 방법 예제 file 2022.02.16 19
» MSSQL 컬럼 중간에 추가하는 방법 file 2022.02.16 186
23 MSSQL RANK와 DENSE_RANK 랭크 함수 차이 예제 file 2022.02.16 14
22 MSSQL ROW_NUMBER로 성적 순위 설정 방법 예제 file 2022.02.16 9
21 MSSQL 성적 순위 설정 RANK 사용 방법 예제 file 2022.02.14 15
20 MSSQL 간단한 만나이 계산하기 DATEDIFF 사용 예제 file 2022.02.14 266
19 MSSQL 현재 시간 취득하는 여러 가지 방법 file 2022.02.14 14
18 MSSQL NULL값 변환 (NVL, ISNULL, CASE) 사용 방법 예 file 2022.02.14 134
17 MSSQL 공백값과 NULL값 동시에 체크 하는 방법 file 2022.02.14 1000
16 MSSQL 앞에 숫자0 채우기 FORMAT 사용 2022.02.14 86
15 MSSQL 숫자 3자리 콤마 넣기 또는 삭제하기 2022.02.14 56
14 MSSQL MERGE사용 안하고 있으면 UPDATE 없으면 INSERT 하기 2022.02.14 78
13 MSSQL MERGE 테이블에 있으면 업데이트 없으면 추가 하기 2022.02.14 10
12 MSSQL 문자열에서 숫자 또는 문자만 추출하기 REPLACE, PATINDEX 2022.02.14 670
11 MSSQL 모든 테이블 사용하고 있는 용량 확인 방법 2022.02.14 35
Board Pagination Prev 1 2 Next
/ 2

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved