如何在插入 MSSQL Server 之前执行查询
How to execute a query just before insert in MSSQL Server
我需要在每次插入 table 之前执行查询。我尝试使用而不是
--insert into tbl_Exlog(ActionName) values('Insert')
--select * from tbl_Exlog
ALTER Trigger [dbo].[trgExLogTest] on [dbo].[tbl_ExLog]
Instead of Insert
as
begin
insert into tbl_ExLog (ActionName) values('trigger')
end
but it restricts the actual insert which I don't want.
输出:
动作名称
触发器
缺少插入内容
缺少 INSERT
,是的,在您的 TRIGGER
中。您从未告诉 SQL 服务器 INSERT
数据,因此它不会 INSERT
它。 INSTEAD OF INSERT
“确实完全它在锡罐上所说的那样”; 'do this instead of the INSERT
'。你告诉 SQL 服务器将 INSERT
一行变成 tbl_ExLog
而不是 但不要告诉它 INSERT
变成 [=36] =] 你实际上又在插入。
在触发器中定义 INSERT
:
ALTER TRIGGER [dbo].[trgExLogTest] ON [dbo].[tbl_ExLog]
INSTEAD OF INSERT AS
BEGIN
INSERT INTO dbo.tbl_ExLog (ActionName) VALUES ('trigger');
INSERT INTO dbo.trgExLogTest ({Column List})
SELECT {Column List}
FROM inserted;
END;
我需要在每次插入 table 之前执行查询。我尝试使用而不是
--insert into tbl_Exlog(ActionName) values('Insert')
--select * from tbl_Exlog
ALTER Trigger [dbo].[trgExLogTest] on [dbo].[tbl_ExLog]
Instead of Insert
as
begin
insert into tbl_ExLog (ActionName) values('trigger')
end
but it restricts the actual insert which I don't want.
输出: 动作名称 触发器
缺少插入内容
缺少 INSERT
,是的,在您的 TRIGGER
中。您从未告诉 SQL 服务器 INSERT
数据,因此它不会 INSERT
它。 INSTEAD OF INSERT
“确实完全它在锡罐上所说的那样”; 'do this instead of the INSERT
'。你告诉 SQL 服务器将 INSERT
一行变成 tbl_ExLog
而不是 但不要告诉它 INSERT
变成 [=36] =] 你实际上又在插入。
在触发器中定义 INSERT
:
ALTER TRIGGER [dbo].[trgExLogTest] ON [dbo].[tbl_ExLog]
INSTEAD OF INSERT AS
BEGIN
INSERT INTO dbo.tbl_ExLog (ActionName) VALUES ('trigger');
INSERT INTO dbo.trgExLogTest ({Column List})
SELECT {Column List}
FROM inserted;
END;