首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于触发器更新值有关问题

2013-07-04 
关于触发器更新值问题ALTER Trigger [dbo].[UpdateCheckAddess]On [dbo].[CheckPD]for UpdateAsif Update(

关于触发器更新值问题



ALTER Trigger [dbo].[UpdateCheckAddess]
            On [dbo].[CheckPD]                              
            for Update                               
          As                                           
            if Update(ReceAddress)     
            begin
              UPDATE CheckPD SET 
              ReceAddressJ=ReceAddress.ReceAddressJ,
              ReceAddress1=ReceAddress.ReceAddress,
              Contact=ReceAddress.Contact,
              Phone1=ReceAddress.Phone1,
              Phone2=ReceAddress.Phone2
              FROM CheckPD,ReceAddress 
              WHERE CheckPD.ReceAddress=ReceAddress.ID
end


--判断ReceAddress列的值是否被前台SQL语句更新过,如果更新过就更新上面的语句,
问题:这样写触发器就把表内所有符合条件的全部更新了,会增加服务器压力,怎么写只更新前台操过的数据,而不是全部,谢谢!

[解决办法]
这样   update from inserted    ....inserted临时表存放前台更新的数据的新值
[解决办法]
你可以再加个条件 CheckPD 表里面 这些要更新的字段 ReceAddressJ。。。 为空
[解决办法]
引用:
引用:你可以再加个条件 CheckPD 表里面 这些要更新的字段 ReceAddressJ。。。 为空

这样也不太好,难道非要我从前台传回更新那些数据的ID,进行更新吗?...

不要你传id呀,更何况触发器不能传参

你不是想更新 表中那几列为空的字段吗
你就在条件中把这几列为空给加进去可以吗

热点排行