我创建了一个可以更新两个不同数据库中的表的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行受影响?