2010-07-13 4 views
3

삽입되었는지 확인하는 방법 : 그 삽입이 전혀 아무것도 삽입 한 경우 확실하게 알아낼 필요내가 삽입 문이 어떻게 아무것도 INSERT SELECT (T-SQL)

insert into parentTbl 
select firstId, secondId, thirdId, dateTm 
from importTbl 
where codeId = @codeIdParam 

합니다.

set @insertedCount = @@ROWCOUNT 

을하지만에만 삽입의 마지막 번호를 보인다 : 내가 현재 사용하고 0

적으로는, 내가 그 경우에도 삽입 된 행의 수에 @insertedCount 변수를 설정하려는 rows - 문제는 INSERT SELECT 문에 아무 것도 삽입하지 않으면 @@ROWCOUNT이 0을 반환하지 않는다는 것입니다.

+0

삽입 문이 루프 또는 커서 내에 있습니까? – CoderHawk

답변

2

삽입 된 행당 하나의 행을 반환하는 OUTPUT 절을 사용할 수 있습니다. 이것은 당신이 다음에 수를 실행할 수있는 모든 삽입 된 행의 firstId의, 당신에게 결과 집합을 줄 것이다

insert into parentTbl 
output inserted.firstId 
select firstId, secondId, thirdId, dateTm 
from importTbl 
where codeId = @codeIdParam 

: 같은 것을.
한 가지 방법은 output into에 테이블 -var를 넣은 다음 끝에 select count(*) from @tableVar을 삽입하여 삽입 횟수를 얻으십시오.

+0

궁극적으로 INSERT SELECT 문을 SELECT로 가져 와서 변수에 COUNT (*)를 반환하도록 설정했습니다. 물론 INSERT SELECT가 IF 블록으로 래핑되기 전에 발생합니다. –