【发布时间】:2019-03-07 03:36:51
【问题描述】:
对于同步过程,我的 SQL Server 数据库应记录已更改的列表项 - 表名和主键。
数据库已经有一个表和存储过程来执行此操作:
EXEC @ErrCode = dbo.SyncQueueItem "tableName", 1234;
我想在表中添加触发器以在 INSERT、UPDATE、DELETE 上调用此存储过程。我如何获得钥匙?最简单可行的方法是什么?
CREATE TABLE new_employees
(
id_num INT IDENTITY(1,1),
fname VARCHAR(20),
minit CHAR(1),
lname VARCHAR(30)
);
GO
IF OBJECT_ID ('dbo.sync_new_employees','TR') IS NOT NULL
DROP TRIGGER sync_new_employees;
GO
CREATE TRIGGER sync_new_employees
ON new_employees
AFTER INSERT, UPDATE, DELETE
AS
DECLARE @Key Int;
DECLARE @ErrCode Int;
-- How to get the key???
SELECT @Key = 12345;
EXEC @ErrCode = dbo.SyncQueueItem "new_employees", @key;
GO
【问题讨论】:
-
您知道 SQL Server 已经内置了用于更改跟踪、复制等的机制...
-
@Damien_The_Unbeliever 我们在这里都很聪明。你将不得不更加努力地摆姿势......
标签: sql-server triggers