我想獲取導致觸發器執行的行的值。所以我可以將它(作為引數)傳遞給存盤程序。
存盤程序接受下面腳本中定義的表型別作為輸入:
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
uj5u.com熱心網友回復:
該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
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/483662.html
上一篇:從PIVOT添加其他列的SUM列
下一篇:在多行上替換字串
