2013-04-04 109 views
1

這裏是我的存儲過程:SQL存儲過程影響的行

create procedure insertBook2 @author varchar(32), @title varchar(32), @pages int 
as 
begin 
    declare @identity int 
    insert into inventar(author,class) values (@author,'book') 
    select @IDENTITY=SCOPE_IDENTITY() 
    insert into book(id,title,pages) values (@identity,@title,@pages) 
end 

和表關係

inventar(id,class,author) 
book(id,title,pages); 

我執行程序,但它影響到3行。增加了一個行的表賬面價值:ID = ID標題= NULL和頁面= NULL行之前,提供真實的信息:/ 謝謝!

+0

你有這些表上的觸發器嗎? – 2013-04-04 14:39:03

+0

號 也許問題是那本書(ID)是外鍵引用inventar(ID)。當我們將值插入inventar,我們在書中用相同的ID和插入空values.instead成冊,更新有一個新的記錄書工作正常 – myID33 2013-04-04 16:04:29

回答

0

你的存儲過程,看起來它應該創建正確的行數很好,這是一個在每個表。

但是,我看到你在做

select @IDENTITY=SCOPE_IDENTITY() 

,而應該要使用

set @IDENTITY=SCOPE_IDENTITY() 

爲你設置一個變量,而不是查詢表。

會導致你獲得額外的輸出說:「1行受到影響」,這也許是什麼原因造成你的困惑。