INSERT 문에 SELECT 하위 쿼리를 사용하여  초간단 설명

--Book2 에 Book에 대한 값을 넣어줍니다

INSERT INTO Book2 
SELECT  PostID, BookName, BookContent 
FROM     Book 

이때 Book  과 Book2  는 필드가 일치해야 합니다

--Book2 에 Book에 대한 특정 필드값을 넣어줍니다

INSERT INTO Book2 
               (BookName) 
SELECT  Book.BookName 

--Book2와 에 Book에서 일치하는 값을 넣어줍니다

--아래는 PostID 가 들어가있다는 가정하에  서로 PostID  일치하는 Book2에 데이터를 넣어주는 부분입니다

INSERT INTO Book2 
               (BookName) 
SELECT  Book.BookName 
FROM     Book INNER JOIN 
               Book2 AS Book2_1 ON Book.PostID = Book2_1.PostID 

----------------------------------------------------------------------------------------------------------------------

INSERT 문에 SELECT 하위 쿼리를 사용하여 하나 이상의 다른 테이블이나 뷰에서 테이블로 값을 추가할 수 있습니다. 또한 SELECT 하위 쿼리를 사용하여 동시에 여러 행을 삽입할 수 있습니다.

다음 예제에서 INSERT 문은 AdventureWorksSales.SalesReason 테이블에서 SalesReasonMarketing인 모든 행의 일부 데이터를 별도의 테이블로 삽입합니다.

USE AdventureWorks;
GO
CREATE TABLE MySalesReason (
    SalesReasonID int NOT NULL,
    Name nvarchar(50),
    ModifiedDate datetime);
GO
INSERT INTO MySalesReason
    SELECT SalesReasonID, Name, ModifiedDate
    FROM AdventureWorks.Sales.SalesReason
    WHERE ReasonType = N'Marketing';
GO
SELECT SalesReasonID, Name, ModifiedDate 
FROM MySalesReason;
GO

하위 쿼리의 SELECT 목록은 INSERT 문의 열 목록과 일치해야 합니다. 열 목록을 지정하지 않을 경우 SELECT 목록은 삽입될 테이블이나 뷰의 열과 일치해야 합니다.

INSERT...SELECT 문으로 SQL Server 2005 외부에 있는 원본의 데이터를 삽입할 수도 있습니다. INSERT 문에 SELECT를 사용하여 다음과 같은 작업을 수행할 수 있습니다.

  • 네 부분으로 이루어진 이름을 사용하여 연결된 서버에서 원격 테이블을 참조합니다. 자세한 내용은 연결된 서버 이름을 사용하여 데이터 원본 확인을 참조하십시오.
  • OPENROWSET를 사용하여 원격 테이블을 참조합니다. 자세한 내용은 임시 이름을 사용하여 데이터 원본 확인을 참조하십시오.
  • 원격 서버에서 실행되는 쿼리의 결과 집합을 사용합니다. 자세한 내용은 통과 쿼리를 테이블로 사용을 참조하십시오.

+ Recent posts