我已经收到此sql脚本,我需要对其进行编辑以更新3个表上的HasChanged字段。我已经对脚本进行了一些编辑,但是它似乎没有按预期工作。 我现在的问题是,我正在使用2个字段(“ Vejkode”,“ Kommunekode”)唯一地标识“ Vejstykke”,但是“ Vejstykke”表中的行未更新。
触发器是“ INSTEAD OF UPDATE”。
我正在创建临时表:
CREATE TABLE #Id
(
Id NVARCHAR(100),
Kommunekode NVARCHAR(100),
Vejkode NVARCHAR(100)
)
CREATE TABLE #PostnummerBy
(
Postnr NVARCHAR(100)
)
然后将数据插入到我的临时表中:
INSERT INTO #Id (Id)
SELECT DISTINCT Id FROM inserted
INSERT INTO #PostnummerBy (Postnr)
SELECT DISTINCT [Postnr] FROM inserted
INSERT INTO #Id (Vejkode, Kommunekode)
SELECT DISTINCT Vejkode, Kommunekode FROM inserted
然后我为临时表创建索引以允许连接:
CREATE NONCLUSTERED INDEX ixId_Id ON #Id (Id)
CREATE NONCLUSTERED INDEX ixPostnummerBy_Postnr ON #PostnummerBy (Postnr)
然后我更新3个表中的每个表。这是有问题的脚本的更新脚本:
UPDATE
Customer_InfohubStaging.Dawa.tMirror_Vejstykke
SET
Infohub_HasChanged = 0
FROM
Customer_InfohubStaging.Dawa.tMirror_Vejstykke
JOIN #id i ON i.Vejkode = Customer_InfohubStaging.Dawa.tMirror_Vejstykke.Vejkode AND i.Kommunekode = Customer_InfohubStaging.Dawa.tMirror_Vejstykke.Kommunekode
WHERE
Infohub_HasChanged = 1
我不太了解这段代码应该如何工作。没有在预期行上将Infohub_HasChanged设置为0。我已经尝试将AND与联接一起使用,以同时考虑“ Vejkode”和“ Kommunekode”。
我的问题是我如何使用临时表并正确联接以更新“ Vejstykke”表中的预期行。让我知道是否需要更多信息,我会提供。