저장 프로 시저에서 값을 삽입 병합 기능을 사용하여?어떻게 이런 일을하려고
업데이트 1 : 대답은 NO
온라인 문서 http://msdn.microsoft.com/en-us/library/bb510625%28v=sql.105%29.aspx
VALUES (values_list) 상수, 변수, 또는 삽입 할 값을 반환하는 식의 쉼표로 구분 된 목록인가를 읽을입니다 목표는 입니다. 표현식에 EXECUTE 문을 포함 할 수 없습니다.
저장 프로 시저에서 값을 삽입 병합 기능을 사용하여?어떻게 이런 일을하려고
업데이트 1 : 대답은 NO
온라인 문서 http://msdn.microsoft.com/en-us/library/bb510625%28v=sql.105%29.aspx
VALUES (values_list) 상수, 변수, 또는 삽입 할 값을 반환하는 식의 쉼표로 구분 된 목록인가를 읽을입니다 목표는 입니다. 표현식에 EXECUTE 문을 포함 할 수 없습니다.
SSIS 패키지를 빌드하십시오. 새 데이터 흐름 작업을 만드십시오. 두 개의 OLEDB 소스를 사용하여 그 중 하나가 저장 프로 시저를 실행하고 다른 하나는 찾고있는 테이블에서 MERGE
을 선택합니다. 둘 다 똑같은 순서로 주문되었는지 확인하십시오. 각 OLEDB 소스에 대한 고급 설정으로 이동하고 세트를 true로 정렬 한 다음 ORDERING BY 항목의 정렬 값을 설정합니다. 그런 다음 두 데이터 흐름을 MERGE JOIN
으로 이동하십시오. 그런 다음 데이터 흐름을 조건부 분할로 보내고 INSULL(OrganisationID)
으로 설정합니다. 결과 데이터 흐름을 사용하여 OLEDB 대상으로 이동합니다.
이미지가 부족하여 죄송합니다. 나중에 점심 시간에 바쁜 시간에 추가 할 예정입니다.
[공개적으로 그리고 무료로 사용할 수있는 온라인 설명서에] (http://msdn.microsoft.com/en-us/library/bb510625%28v=sql.105%29.aspx), 유효한 유일한 것은 '일치하지 않을 때'절은 : INSERT [(column_list)] {VALUES (values_list) | DEFAULT VALUES}'- 그래서 ** ** 데이터 값을 삽입하는 대신 저장 프로 시저를 호출 할 수 없다 ** –
어쨌든'INSERT table EXEC dbo.procedure'가 아닌가? 왜 '병합 (MERGE)'을 넣을려고 노력하면서 이걸 복잡하게 만드나요? –
@AaronBertrand 야간에 실행되는 작업입니다. 중복 된 데이터를 삽입하고 싶지 않습니다. – ValidfroM