SQL Server:多次更新不会引发错误

时间:2017-03-02 04:22:37

标签: sql-server-2008

我有更新2个表的简单程序:

create procedure p_updatetrans(@id int)
as
    declare @errmsg Nvarchar(200)

    begin tran
        update table1 
        set data = 10 
        where id = @id

        if (@@error <> 0 or @@rowcount = 0)
        begin
            select @errmsg = 'Fail to update table1'
            goto error
        end

        update table2 
        set isUpdate = true 
        where id = @id

        if (@@error <> 0 or @@rowcount = 0)
        begin
            select @errmsg = 'Fail to update table2'
            goto error
        end

        commit tran
        return

error:
     raiserror(@errmsg, 16 ,1)
  rollback tran

为了更新table2中没有记录,为什么我没有收到错误?如果我使用NoCount On,我就无法获得@@ rowcount数据。

由于

0 个答案:

没有答案