【发布时间】:2017-01-31 17:34:42
【问题描述】:
我创建了一个触发器,它将在 INSERT 上执行存储过程:
USE [DB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[trigger_name] ON [dbo].[table_name]
AFTER INSERT AS
BEGIN
SET NOCOUNT ON
EXEC procedure_name_exec param1, param2, param3
END
我想要实现的是使用参数执行存储过程,这些参数代表刚刚插入的行并且基本上触发了这个触发器。
【问题讨论】:
-
感谢@TheGameiswar 的编辑
-
由于参数需要是插入行的值,因此您必须在此处使用循环,因为插入的表可以并且将有超过 1 行。您需要为每一行调用此过程。
-
我不想要循环,每次插入一行时触发器都应该执行该过程。
-
这不是触发器在 sql server 中的工作方式。他们每次操作一次而不是每行一次。如果您有一个插入超过 1 行的插入,并且您的触发器没有处理每一行,那么您的逻辑将无法正常工作。
-
操作为插入,插入为一行。因此我不需要循环
标签: sql sql-server stored-procedures triggers insert