如果条件存在,我想更新数据库中的记录。
set nocount off;
if exists ( select * from ParentTable where ID=@ParentID )
update ChildTable set Title=@Title,ParentID=@ParentID where ID=@ID;
else return -2;
但如果ParentID不存在则返回-1。
我使用ExecuteNonQuery()来运行此过程
答案 0 :(得分:4)
ExecuteNonQuery
的返回值是受影响的行数,不是自定义返回代码。虽然-1
(当前返回值)在这种特殊情况下似乎是一个合适的替代品,但为了解决更一般的情况,您必须使用ExecuteScalar
并使用以下模式:
declare @retval int
if exists ( select * from ParentTable where ID=@ParentID )
begin
update ChildTable set Title=@Title,ParentID=@ParentID where ID=@ID;
select @retval = @@ROWCOUNT
end
else
select @retval = -1
select @retval