В настоящее время я использую дозвуковую 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, чтобы это работало?

2
Dave Bishop 10 Мар 2011 в 15:48
1
Как вы пытались запустить скрипт создания триггера? Через ССМС, или через дозвук? Я думаю, вы говорите, что пытаетесь добавить триггер через Subsonic, но я просто хочу убедиться, прежде чем отвечать.
 – 
Shannon Lowder
9 Апр 2011 в 00:25
Я добавил триггер через SSMS, я использую subsonic для вставки записей в базу данных, которая не работает после того, как я прикрепил триггер.
 – 
Dave Bishop
11 Апр 2011 в 13:21

1 ответ

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

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

Или

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

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

0
Wayne Evans 15 Апр 2011 в 20:41