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

sql2005报错,超出了存储过程、函数、触发器或视图的最大嵌套层数(最大层数为 32)。
我想建一个触发器自动填超期天数如果实还日期不为空的话,另外我还有两个触发器,都很成功,这个只是把第二个的列名换了一下,运行显示成功,可是去填表的时候就出错,如题目所示代码如下:
create TRIGGER for_insert_jy2
ON dbo.借阅信息表
for INSERT , update
AS BEGIN
if('实还日期' is not null)
update  dbo.借阅信息表
    set 超期天数=(select datediff(day,(select 应还日期 from inserted),(select 实还日期 from inserted))) 
    where 图书编号=(select 图书编号 from inserted)
end
------解决方案--------------------
把两个放在一个了,ok了
------解决方案--------------------
你后面那句话是指解决了?不过你的代码有点.....先从inserted表直接用datediff把 应还日期和实还日期的天数差算出来,然后再拿去update就可以拉,何必每一列都要从新select一次呢
------解决方案--------------------
引用:
你后面那句话是指解决了?不过你的代码有点.....先从inserted表直接用datediff把 应还日期和实还日期的天数差算出来,然后再拿去update就可以拉,何必每一列都要从新select一次呢

不太会
------解决方案--------------------
select datediff(day,应还日期,实还日期)
from inserted
之类这样的格式。