插入表中计算机名或用户名称;
SQL 2005数据库
在表单中增加一个字段类型为字符串,需求是当数据符合某个条件时,则该字段中自动更新该电脑的电脑名称或K3登陆账号,
CREATE TRIGGER [river_icsubcontractentry1]
ON [dbo].[ICSubContractEntry]
FOR UPDATE
AS
BEGIN
DECLARE @a int
DECLARE @b VARCHAR(40)
-- SELECT @a= d.FMrpAutoClosed FROM inserted d
-- IF @a='1'
BEGIN
SET @b= HOST_NAME()
UPDATE icsubcontractentry SET ftext5= (CASE WHEN ICE.FMrpAutoClosed='1' THEN @b ELSE ' ' END)
FROM ICSubContractEntry ice JOIN inserted i ON i.finterid=ice.FInterID
END
END
语句如上,触发器能执行成功,但操作更新时则报错,
提示:超出了存储过程、函数、触发器或视图的最大嵌套层数(最大层数为 32);
不知道是什么问题,需要怎么写这个程序,请教大家帮忙指点,谢谢。
------解决方案--------------------或者:
CREATE TRIGGER [river_icsubcontractentry1]
ON [dbo].[ICSubContractEntry]
FOR UPDATE
AS
BEGIN
DECLARE @a int
DECLARE @b VARCHAR(40)
-- SELECT @a= d.FMrpAutoClosed FROM inserted d
-- IF @a='1'
if update(FMrpAutoClosed) --只有当FMrpAutoClosed字段update了,才会运行下面的语句
BEGIN
SET @b= HOST_NAME()
UPDATE icsubcontractentry SET ftext5= (CASE WHEN ICE.FMrpAutoClosed='1' THEN @b ELSE ' ' END)
FROM ICSubContractEntry ice JOIN inserted i ON i.finterid=ice.FInterID
END
END