【发布时间】:2020-06-18 19:30:32
【问题描述】:
是否可以在仅将某人编辑的行输入到新表中的数据库上创建触发器。所以说在tbl1 有人更改了一个名为“名称”的列。我想获取已编辑的行并将其放在tbl2 中。因此,我想从 tbl1 中仅提取该已编辑行的其他列并将其存储在新表中。我想跟踪更改名称的时间以及日期和时间。这甚至可以通过触发器实现吗?我了解如何为触发事件设置表格。但是我很难理解如何在没有加入的情况下将值从 tbl1 带到 tbl2。
ALTER TRIGGER testname
ON tbl1
AFTER UPDATE
AS
IF UPDATE(name)
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
INSERT INTO tbl2 (ODID,ID2)
VALUES ();
END
GO
【问题讨论】:
-
触发器是高度特定于供应商的 - 所以请添加标签以指定您使用的是
mysql、postgresql、sql-server、oracle还是db2- 或完全不同的东西。 -
很抱歉。它是 SQL Server
-
看看Inserted & Deleted 伪表。
-
根据您的 SQL Server 版本,您可能会发现使用 SQL 的本机时态表完全可以满足您的需求,甚至更多。在这里查看:docs.microsoft.com/en-us/sql/relational-databases/tables/…
标签: sql sql-server database-trigger