【发布时间】:2018-01-16 12:38:50
【问题描述】:
我面临与合并语句相关的问题我有这样的合并语句
MERGE abc A
USING xyz B ON A.trans_date = b.trans_date
WHEN matched AND B.trans_date IS NOT NULL
THEN
UPDATE
SET A.column1 = B.column1,
A.column2 = B.column2,
A.column3 = B.column3
WHEN NOT matched BY target AND B.trans_date IS NOT NULL
THEN
INSERT (column1, column2, column3)
VALUES (column1, column2, column3);
并且像这样在表 ABC 上有一个触发器
ALTER TRIGGER [dbo].[TRG_ABC]
ON [dbo].[Z_ABC]
FOR UPDATE
AS
DECLARE @Column4 NUMERIC(9), @Column5 CHAR(1)
SELECT @Column4 = Column4, @Column5 = Column5
FROM inserted
UPDATE ABC
SET Column5 = CASE
WHEN @Column5 = 'S'
THEN 'Y'
ELSE CASE
WHEN @Column5 = 'N'
THEN 'N'
ELSE 'U'
END
END
WHERE Column4 = @Column4
此触发器不适用于更新每一行。更新每一行的代码或任何解决方案有什么问题吗?
【问题讨论】:
标签: sql sql-server database database-trigger