错误信息.作者: 阿罗 时间: 2004-7-7 04:37
"inserted"? maybe it is "deleted"? If still problem, pls let me know.And, maybe the UPDATE statement is better like this:update dbo.[tbl交检单-编号] set 借用=0, 借用日期=null FROM dbo.[tbl交检单-编号] t1, deleted t2
where t1.产品编号=t2.产品编号 AND t1.产品型号=t2.产品型号 作者: yodong 时间: 2004-7-8 00:22
非常感谢亚罗版主,原来我把inserted表和deleted表搞错了,真是非常感谢.ALTER TRIGGER 借用单编号_T1
ON dbo.[tbl借用单-编号]
FOR DELETE/* INSERT, UPDATE, DELETE */
AS
update dbo.[tbl交检单-编号]
set 借用=0,
借用日期=null
where 产品编号 in (select 产品编号 from deleted ) and 产品型号 in (select 产品型号 from deleted ) '====================ALTER TRIGGER 借用单编号_T1
ON dbo.[tbl借用单-编号]
FOR DELETE /* INSERT, UPDATE, DELETE */
ASupdate dbo.[tbl交检单-编号]
set
借用=0,
借用日期=null
FROM dbo.[tbl交检单-编号] t1, deleted t2
where t1.产品编号=t2.产品编号 AND t1.产品型号=t2.产品型号 这两种写法都通过,亚罗朋友,在网络多用户环境使用,这两种写法都可以吗?作者: 阿罗 时间: 2004-7-8 01:55
yodong朋友,多用户也没问题的。deleted/inserted的根据是每个session(会话),比方说两个人同时删除一个记录那么他们的deleted各自不同,当然,多用户环境要考虑一些其他问题,例如记录锁定和错误处理,如果张三删除了一条记录,而李四的客户端还未刷新,那么李四删除同一条记录就会出错了,所以考虑到这类问题后可以在服务器端或者客户端作处理。你的第一种写法我认为有编码冗余之嫌,因为select....from deleted两次,似乎不是非常专业,各人看法不一,仅供参考。如果,一次删去多条记录,那么这两种写法就有本质的不同了。按照第一种写法,产品编号和产品型号即使不在同一条被删除记录,但只要删除的那些记录中都有((select 产品编号 from deleted )为真 AND 产品型号 in (select 产品型号 from deleted )为真),那么就执行语句;第二种写法则要求同时在某一条被删除记录中匹配产品编号和产品型号。作者: yodong 时间: 2004-7-8 03:07
有道理,真是受益匪浅,阿罗朋友,你对SQL SERVER 很有研究.希望你不要厌我其烦向你请教.谢谢你对我的帮助.作者: 阿罗 时间: 2004-7-8 06:46
楼主不必客气,我也只是半瓶子醋而已。能帮上忙,感到很高兴,如何会“厌你其烦”?