【发布时间】:2021-05-19 04:55:10
【问题描述】:
我正在将一些 DB2 触发器转换为 SQL Server。此处显示的其中一个我正在努力解决,Conversion 在一定程度上进行了尝试,但似乎还不足以解决问题。
在更新或插入之前触发执行,并根据Select括号中的语句选择列PDE_KEY的值,并在写入数据库之前使用where子句。
需要帮助。
DB2 触发器
CREATE OR REPLACE TRIGGER "TDC" BEFORE
INSERT
ON
"DECL_CONSIGNMENT" REFERENCING NEW AS NEW FOR EACH ROW NOT SECURED SET
NEW.PDE_KEY = (
SELECT
D.PDE_KEY
FROM
DECL D
WHERE
D.DE_KEY = NEW.DE_KEY)
此触发器的 SQL Server 转换(我的尝试):
CREATE TRIGGER [TDC]
ON [DECL_CONSIGNMENT]
INSTEAD OF INSERT
AS
BEGIN
DECLARE @PDE_KEY BIGINT
SET NOCOUNT ON
SELECT
@PDE_KEY = D.PDE_KEY
FROM
DECL D
WHERE
D.DE_KEY = (...work upto here)
END
【问题讨论】:
-
您还需要解释触发器试图实现的逻辑。
-
在更新或插入之前触发执行,并在写入数据库之前根据括号中的
Select语句选择列PDE_KEY的值。希望这能解释逻辑。 -
edit 任何澄清直接进入您的问题。
标签: sql sql-server db2