AKTUALNOŚCI

nowości, informacje, szkolenia

merge 예제

2/08/2019

예를 들어 대상 테이블에 locationID =2가 있는 행은 조인 조건과 일치하지 않으며 행은 대상 테이블에만 있습니다. 그래서, 우리가 소스에 의해 일치하지 않을 때 사용할 때 행을 삭제하거나 업데이트 할 수 있습니다. 소스 절과 일치하지 않을 때를 사용하여 대상 테이블의 행을 삭제하려면 아래 T-SQL 스크립트를 참조하십시오. 이 예제에서는 Products 테이블을 대상 테이블로, 업데이트된 제품 목록을 포함하는 원본 테이블로 제품을 수행합니다. 그런 다음 MERGE 명령을 사용하여 대상 테이블을 원본 테이블과 동기화합니다. 예제? 안녕하세요; 분명히 기사를 통해 스캔했지만 찾고있던 것은 병합을 사용하는 코드에 대한 전통적인 방식으로하는 코드를 비교하는 것이었습니다. OUTPUT 절 자체는 먼저 기본 제공 $action 변수를 지정하여 세 nvarchar(10) 값 중 하나를 반환합니다.INSERT, UPDATE 또는 DELETE. 변수는 MERGE 문에서만 사용할 수 있습니다. 대상 테이블의 각 열에 대해 열 접두사 집합(DELETED 및 INSERTED)으로 변수를 따릅니다. 열 접두사 뒤에는 관련된 열의 이름이 표시됩니다. 예를 들어 삭제됨을 포함합니다.

제목 ID 및 삽입되었습니다. 대상 테이블의 TitleID 열에 대한 TitleID입니다. 열 접두사를 지정한 후 출력된 값을 @MergeOutput 변수에 저장하도록 지정하는 INTO 하위 절을 포함합니다. 다음 예제는 MERGE 문의 OUTPUT 절에서 반환 된 데이터를 캡처 하 고 다른 테이블에 해당 데이터를 삽입 합니다. MERGE 문은 SalesOrderDetail 테이블에서 처리되는 주문을 기반으로 AdventureWorks2012 데이터베이스의 제품 인벤토리 테이블의 수량 열을 업데이트합니다. 이 예제는 업데이트된 행을 캡처하고 인벤토리 변경 내용을 추적하는 데 사용되는 다른 테이블에 삽입합니다. 의 예를 의 도움으로 병합 문에 대한 우리의 모든 의심을 명확히 할 수 있습니다. 이러한 작업을 사용해야 하는 대상 테이블 PRODUCTS_DETAILS이 있고 최신 제품 세부 정보가 포함된 소스 테이블이 있고 업데이트된 정보 테이블에서 변경하려는 데이터에 따라 업데이트된 테이블이 있다고 생각하면 됩니다. 기본 PRODUCT_DETAILS 테이블입니다.

반환되는 행이 없는 경우 원본 테이블의 열에 액세스할 수 없습니다. 절에 지정된 업데이트 또는 삭제 작업이 원본 테이블의 열을 참조하는 경우 error 207(잘못된 열 이름)이 반환됩니다.