为什么我的更新存储过程返回2行受影响,而表中只有一个数据?

时间:2017-05-03 04:23:33

标签: sql-server stored-procedures

我创建了一个可以更新两个不同数据库中的表的strored过程。

CREATE PROCEDURE [dbo].[usp_Update]
(
    @sID        VARCHAR(max),
    @sName      VARCHAR(max),
    @sLocation  VARCHAR(max)
)
AS
BEGIN

    -- Update table1 in database testDB1 --
    UPDATE dbo.table1 SET Name = @sName, Location = @sLocation WHERE ID = @sID

    -- Update table2 in database testDB2 --
    UPDATE testDB2.dbo.table2 SET Name = @sName, Location = @sLocation WHERE ID = @sID

END

table2包含table1中的所有数据,但并非table1中的所有数据都包含在table2中。

因此,如果table1中的某些数据已更新,则自动table2也会更新,如果table1中的数据未更新,table2仍会更新。

我的查询实际上没有错误,当我尝试更新仅在table2中的数据时,它会返回

  

(0行(s)受影响)

     

(1行受影响)

但是,每次我尝试更新两个表中的数据时,都会返回

  

(2行(s)受影响)

     

(1行受影响)

那么,为什么当table1上只有一个数据时,它会说2行受影响?

0 个答案:

没有答案