使用SubSonic 2.0.3时失败的插入触发器

时间:2011-03-10 12:48:57

标签: asp.net sql triggers subsonic

我目前正在使用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生成的生成代码才能使其正常工作?

1 个答案:

答案 0 :(得分:0)

M / S说它是一个错误。您需要安装.Net 3.5并应用补丁:

http://support.microsoft.com/kb/961073

http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=961073&kbln=en-us

查看代码,您将插入到table2中,而不是运行触发器的同一个表。如果它是同一个表,我会认为你已经再次触发了相同的插入触发器,它会让你循环。