日期:2014-05-17  浏览次数:20359 次

请问下关于SQL SERVER2012触发器的问题
请问下 为什么我设置了一个触发器 用于update的

一共触发4个表 为什么每次返回受影响的行数是 这4个表总条数相加的呢?

比如说我更新了1表 触发了A,B,C,D 4个表

这4个表中每个表有5条数据 那么我更新1表返回受影响的行数就是 5*4+1(1是更新了1表的那条数据)=21行

但是insert触发器就没问题 受影响行数是5条 5个表各一条


触发器代码是

ALTER TRIGGER [dbo].[tenants_update]
ON [dbo].[T_Tenants] 
FOR update
AS 
BEGIN
declare @_type nvarchar(10)
SELECT @_type=[Type] from inserted
UPDATE T_Quartewatercostdetail
   SET [Type] = @_type

UPDATE T_Quarteelectricitycostdetail
   SET [Type] = @_type

UPDATE T_Quartefeescostdetail
   SET [Type] = @_type

UPDATE T_Quartecost
   SET [Type] = @_type

END


这种是不是我建立了数据库关系的原因?
我建立了一个关系 T_Tenants 的ID 等于 其他4个表的TID  跟这个有关吗

------解决方案--------------------
你的update触发器都没有where条件呢,你查看一下表1-4里面的各有多少条数据?