【发布时间】:2025-12-06 22:15:01
【问题描述】:
我正在尝试创建一个触发器,以将新添加的行从不同数据库上的一个表但在同一服务器上复制到另一个表,并增加一个仅存在于添加新行的表上的列。我不确定代码是否准确,并且希望获得有关如何改进的任何反馈。
CREATE TRIGGER AddReTncyTransStatement
ON [DBAdmin].[dbo].[ReTncyTransStatement]
AFTER UPDATE, INSERT
AS
BEGIN
INSERT INTO [DBAdmin].[dbo].[ReTncyTransStatement]
([ORG-CODE], [TNCY-SYS-REF], [TRANS-NO], [PROGRESS-RECID])
SELECT
[ORG-CODE],
[TNCY-SYS-REF],
[TRANS-NO],
[ANALYSIS-CODE] ``,
(SELECT MAX([PROGRESS-RECID])
FROM [DBAdmin].[dbo].[ReTncyTransStatement]) + 1 AS RECID
FROM
[SQLViewsPro2EOD].[dbo].[RE-TNCY-TRANS]
END;
【问题讨论】:
-
此查询不会按预期工作,因为您已经在表上创建了一个 AFTER INSERT 触发器,并且您试图再次插入到触发器内的同一个表中。
-
我可以把它改成什么来修复它?抱歉,我以前从未写过触发器。
-
我已经发布了答案
标签: sql-server tsql triggers