获取导致执行触发器的插入行



我想获得触发执行的行值。因此我可以将它(作为参数)传递给存储过程。

存储过程接受下面脚本中定义的表类型作为输入:

CREATE TYPE PersonTableType AS TABLE
(
Id int primary key,
FirstName nvarchar(50),
LastName nvarchar(50)
)

过程(将从触发器插入的行插入到ArchivePerson表中)

Create PROCEDURE sp1
@PersonType PersonTableType Readonly
As
BEGIN
Insert Into ArchivePerson 
Select * From @PersonType
END

如何声明触发器?我试过这样写:

Alter TRIGGER insertPerson 
ON  Person 
AFTER Insert
AS 
BEGIN
declare @PersonType PersonTableType;
??
Exec sp1 @PersonType
END

inserted表中有插入的行。它具有与原始[Person]表相同的列,因此使用适当的列:

Alter TRIGGER insertPerson 
ON  Person 
AFTER Insert
AS 
BEGIN
declare @PersonType PersonTableType;
insert @PersonType(Id,FirstName,LastName)
select <corresponding columns>
from inserted
Exec sp1 @PersonType
END

相关内容

  • 没有找到相关文章

最新更新