2010-07-13 86 views
3

插入有插入語句:我如何檢查是否有任何與INSERT SELECT(T-SQL)

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

我需要可靠地發現如果插入插入任何東西。理想情況下,我想一個@insertedCount變量設置爲插入的行數,即使是0

我目前正在使用:

set @insertedCount = @@ROWCOUNT 

但這隻能似乎得到的插入的最後一個號碼行 - 問題是如果INSERT SELECT語句沒有插入任何東西@@ROWCOUNT不返回0.

+0

您的插入語句是否駐留在循環或遊標中? – CoderHawk 2010-07-13 11:10:15

回答

2

您可以嘗試使用OUTPUT子句,它將返回每行插入一行;是這樣的:

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

這將使你與firstId小號每個插入的行,然後你可以運行的計數的結果集。
一種方法是output into一個table-var,然後在最後做一個select count(*) from @tableVar來獲得你的插入計數。

+0

最終,我將INSERT SELECT語句的SELECT並將其設置爲將COUNT(*)返回給一個變量 - 當然,這發生在INSERT SELECT之前,它現在包裝在IF塊中。 – 2010-07-13 12:20:34

相關問題