我目前正在使用Subsonic 2.0.3为现有项目生成DataAccess。
在表上添加sql触发器时,使用错误消息
插入时,subsonic开始失败The target table 'Table Name' of the DML statement cannot have any enabled triggers if the statement contains an OUTPUT clause without INTO clause.
我使用的触发器是
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[TriggerName]
on [dbo].[TableName]
AFTER Insert
AS
BEGIN
INSERT INTO TableName
(Values)
SELECT Values
FROM Inserted
END
这似乎是因为自动生成的代码是
INSERT INTO TableName
OUTPUT INSERTED.[ColumnName]
VALUES(Values)
是否有更改触发器或更改由Subsonic 2.0.3生成的生成代码才能使其正常工作?
答案 0 :(得分:0)
http://support.microsoft.com/kb/961073
或
http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=961073&kbln=en-us
查看代码,您将插入到table2中,而不是运行触发器的同一个表。如果它是同一个表,我会认为你已经再次触发了相同的插入触发器,它会让你循环。