2012-02-09 59 views
1

如果條件存在,我想更新數據庫中的記錄。如何在使用executeNonQuery時返回sql所需的值()

set nocount off; 

if exists (select * from ParentTable where [email protected]) 
    update ChildTable set [email protected],[email protected] where [email protected]; 
else return -2; 

但是,如果ParentID不存在,則返回-1。

我使用的ExecuteNonQuery()來運行該程序

+0

您是否嘗試過使用輸出變量? – aggietech 2012-02-09 18:29:27

回答

4

ExecuteNonQuery返回值是受影響的行數,自定義返回代碼。雖然-1(目前的返回值)似乎是在這種特殊情況下一個合適的替代品,解決了更一般的情況下,你將不得不使用ExecuteScalar並使用下面的模式:

declare @retval int 

if exists (select * from ParentTable where [email protected]) 
begin 
    update ChildTable set [email protected],[email protected] where [email protected]; 
    select @retval = @@ROWCOUNT 
end 
else 
    select @retval = -1 

select @retval