【发布时间】:2016-12-22 17:11:48
【问题描述】:
每当使用触发器插入一行时,我都会尝试在表中插入另一行,但收到以下错误消息:
DML 语句的目标表 'EDDSDBO.Redaction' 不能有 如果语句包含 OUTPUT 子句,则任何启用的触发器 没有 INTO 子句。
我们将不胜感激任何为此创建解决方法的帮助。
通过阅读下面的链接,我的代码目前如下
Cannot use UPDATE with OUTPUT clause when a trigger is on the table
代码:
ALTER TRIGGER [EDDSDBO].[AddLabel]
ON [EDDSDBO].[Redaction]
AFTER INSERT
AS
BEGIN
DECLARE @T TABLE (
[FileGuid] VARCHAR, [X] INT, [Y] INT, [Width] INT, [Height] INT
)
INSERT INTO [Redaction] [FileGuid],[X],[Y],[Width],[Height]
OUTPUT [inserted].[FileGuid], [inserted].[X], [inserted].[Y],
[inserted].[Width], [inserted].[Height]
INTO @T
SELECT
[inserted].[FileGuid], [inserted].[X], [inserted].[Y], 70, 35
FROM
inserted
SELECT *
FROM @T
END
在阅读所描述的链接之前,INSERT 代码最初如下:
INSERT INTO [Redaction]
[FileGuid],[X],[Y],[Width],[Height]
SELECT TOP 1
[FileGuid], [X], [Y], 70, 35
FROM [Redaction] AS r1
ORDER BY [ID] DESC
更新: 原来 kCura 的 Relativity 平台不允许插入触发器,所以这是徒劳的......
【问题讨论】:
标签: sql sql-server triggers