- 기본적인 INSERT 문

INSERT INTO dbo.Department(DeptID, DeptName, UnitID, StartDate) 
VALUES('PRD', N'상품', 'A', GETDATE()) 
GO

 

- 열 정보 생략 하여 INSERT 하기

IDENTITY 속성의 열을 제외한 모든 열이거나 나열될 열이 테이블에 포함된 모든열 일때

INSERT INTO dbo.Department 
VALUES('DBA', N'DB관리', 'A', GETDATE())

 

- 동시에 여러 행 INSERT

INSERT INTO dbo.Department 
VALUES('OPR', N'운영', 'A', GETDATE()), ('CST', N'고객서비스', NULL, GETDATE()) 
GO

 

- 상위 n개 INSERT

- Vacation과 같은 구조의 SampleVacation 테이블 만들기

SELECT * 
INTO dbo.SampleVacation 
FROM dbo.Vacation 
WHERE 1 = 0 
GO

 

- Vacation테이블의 상위 5 건만 SampleVacation 테이블에 입력

INSERT TOP(5) 
    INTO dbo.SampleVacation 
    SELECT EmpID, BeginDate, EndDate, Reason, Duration 
        FROM dbo.Vacation 
            ORDER BY BeginDate DESC 
GO

 

- 저장 프로시저 결과 INSERT

-- 저장 프로시저 만들기
CREATE PROC dbo.usp_GetVacation
        @EmpID char(5)
AS
        SELECT EmpID, BeginDate, EndDate, Duration
            FROM dbo.Vacation
            WHERE EmpID = @EmpID
GO

-- 임시 테이블 만들기
CREATE TABLE #Vacation (
    EmpID char(5),
    BeginDate datetime,
    EndDate datetime,
    Duration int
)
GO

-- 저장 프로시저 결과 INSERT
INSERT INTO #VACATION EXEC dbo.usp_GetVacation 'S0001'
GO

SELECT * FROM #Vacation
GO

- IDENTITY 속성에 INSERT 하기

IDENTITY가 2번인 행을 지웠다고 가정하자.

IDENTITY가 2번인 행을 INSERT 하기 위해서 해야 할 일을 알아보자.

-- 임의의 IDENTITY값 INSERT 하기
SET IDENTITY_INSERT dbo.Vacation ON
GO

INSERT INTO dbo.Vacation(VacationID, EmpID, BeginDate, EndDate, Reason) -- 모든 열 정보를 다 나열해야 한다
VALUES(2, 'S0003', '2007-01-22', '2007-01-08', N'신년 맞이 기분 내기')
GO

SET IDENTITY_INSERT dbo.Vacation OFF
GO

SELECT * FROM dbo.Vacation
GO

 

 

 

by 짱구를꼭말려 2014. 3. 3. 14:54