다음을 통해 공유


SELECT INTO를 사용하여 행 삽입

SELECT INTO 문은 새 테이블을 만들고 여기에 SELECT 문의 결과 집합을 채웁니다. SELECT INTO를 사용하여 여러 테이블이나 뷰의 데이터를 하나의 테이블로 결합할 수 있습니다. 연결된 서버에서 선택된 데이터가 포함된 새 테이블을 만드는 데 사용할 수도 있습니다.

새 테이블의 구조는 선택 목록에 있는 식의 특성에 의해 정의됩니다. 다음 예에서는 다양한 직원 및 주소 관련 테이블에서 7개의 열을 선택함으로써 dbo.EmployeeAddresses 테이블을 만듭니다.

USE AdventureWorks;
GO
SELECT c.FirstName, c.LastName, e.Title, a.AddressLine1, a.City, sp.Name AS [State/Province], a.PostalCode
INTO dbo.EmployeeAddresses
FROM Person.Contact AS c
JOIN HumanResources.Employee AS e ON e.ContactID = c.ContactID
JOIN HumanResources.EmployeeAddress AS ea ON ea.EmployeeID = e.EmployeeID
JOIN Person.Address AS a on a.AddressID = ea.AddressID
JOIN Person.StateProvince as sp ON sp.StateProvinceID = a.StateProvinceID;
GO

원본 테이블이 분할되어 있는 경우에도 SELECT INTO를 사용하여 분할된 테이블을 만들 수 없습니다. SELECT INTO는 원본 테이블의 파티션 구성표를 사용하지 않습니다. 대신 기본 파일 그룹에 새 테이블이 만들어집니다. 분할된 테이블에 행을 삽입하려면 먼저 분할된 테이블을 만든 다음 INSERT INTO…SELECT FROM 문을 사용해야 합니다.

SELECT INTO 문을 사용하여 새 테이블을 만들 경우 FILESTREAM 특성이 전송되지 않습니다. FILESTREAM BLOB은 새 테이블에 varbinary(max) BLOB으로 복사되거나 저장됩니다. FILESTREAM BLOB이 2GB를 초과하는 경우 다음 오류 메시지가 발생하고 문이 중지됩니다. "허용되는 최대 크기 2147483647바이트를 초과하여 LOB를 확대하려고 했습니다."