Сбой триггера вставки при использовании SubSonic 2.0.3 - PullRequest
2 голосов
/ 10 марта 2011

В настоящее время я использую Subsonic 2.0.3 для генерации своего DataAccess для существующего проекта.

При добавлении триггера sql в таблицу, дозвуковая ошибка запускается при вставке с сообщением об ошибке

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 голосов
/ 15 апреля 2011

M / S говорят, что это ошибка.Вам нужно установить .Net 3.5 и применить исправление:

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

или

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

Глядя на код, вы вставляетев table2, а не в ту же таблицу, на которой запущен триггер.Если бы это была та же таблица, я бы подумал, что вы бы снова сработали с тем же триггером вставки, и это привело бы вас к циклу.

...