【发布时间】:2020-01-09 10:49:01
【问题描述】:
我一直未能成功地搜索 StackOverflow 和其他网站来解决我的错误,所以有时间发帖看看是否有人能告诉我哪里出错了。
我的系统有一个表单简单的 PowerApp。保存表单时,字段将写入 table1。然后我想在 table1 上创建一个触发器,以便将每个新记录中的一个字段插入到 table2 中。
尽管我的代码中没有输出子句,但我收到以下错误:
请求的操作无效。服务器响应:Microsoft SQL:如果该语句包含没有 INTO 子句的 OUTPUT 子句,则 DML 语句的目标表“table1”不能有任何启用的触发器。内部异常:Microsoft SQL:如果该语句包含没有 INTO 子句的 OUTPUT 子句,则 DML 语句的目标表“table1”不能有任何启用的触发器。
将我的代码剥离回以下仍然会引发相同的错误:
ALTER TRIGGER [dbo].[FormatID]
ON [dbo].[table1]
AFTER INSERT
AS
BEGIN
INSERT INTO [dbo].[table2](origID)
VALUES (1)
END
任何建议请开火,我觉得我好像遗漏了一些明显的东西......
【问题讨论】:
-
错误在这里告诉你问题;你无法解决这个问题。您最好告诉我们您实际上想要达到的目标。
-
听起来您的表单背后的代码只是使用
output返回结果集而不是output ... into将其存储在@table 变量、#temp 或##temp 表中,或持久化桌子。和Cannot use UPDATE with OUTPUT clause when a trigger is on the table基本一样的问题和解决方法 -
嘿@AlwaysLearning 感谢您的回复。您是说尽管我不使用 OUTPUT 或 INSERTED 等,但我需要适应该结果集并将其存储在某个地方?我之前看过那个链接,但与大多数例子一样,这个人正在使用 INSERTED 或 DELETED 而我没有。也许我对我的编码和对它的理解过于直白了......
-
在 Power Apps 中使用存储过程而不是插入行组件。因为这会将 OUTPUT 子句附加到 INSERT,如此处所述 powerusers.microsoft.com/t5/Connecting-To-Data/…
-
@MartinSmith 非常感谢,这让我免于头疼。
标签: sql sql-server triggers