我更新一个视图以获得两列中相同的值,但它交换两个值,而不是只设置它。我的(减少这样)查看UpdateADAuftrag2
是这样的。SQL UPDATE SET交换值
SELECT dbo.CSDokument.AD1, dbo.UpdateAS400zuSellingBenutzer2.BenutzerNr
FROM dbo.AS400Auftrag
INNER JOIN
dbo.CSDokument ON dbo.AS400Auftrag.Angebotsnummer = dbo.CSDokument.Angebotsnummer
INNER JOIN
dbo.UpdateAS400zuSellingBenutzer2 ON dbo.AS400Auftrag.AD = dbo.UpdateAS400zuSellingBenutzer2.SchluesselWert
AND
dbo.CSDokument.AD1 <> dbo.UpdateAS400zuSellingBenutzer2.BenutzerNr
WHERE (dbo.AS400Auftrag.AD IS NOT NULL)
重要的部分是dbo.CSDokument.AD1 <> dbo.UpdateAS400zuSellingBenutzer2.BenutzerNr
AD1
为外部工人用户号码和BenutzerNr
意味着用户号码。所以例如查理布朗是一名外部工作人员,用户号码为31.在AD1
为31时 - 查理布朗是该文件的外部工作人员(在这种情况下命令)。
UPDATE语句洛斯这样
UPDATE [dbo].[UpdateADAuftrag2]
SET [AD1] = [BenutzerNr]
我有例如这些值
AD1 | BenutzerNr
31 | 54
99 | 384
112 | 93
更新后的结果是这样的
AD1 | BenutzerNr
54 | 31
384 | 99
93 | 112
为什么不呢?
AD1 | BenutzerNr
54 | 54
384 | 384
93 | 93
编辑:UpdateAS400zuSellingBenutzer
也是一种景观,但据我可以看到它仅包含BenutzerNr
,而不是AD1
。
我想我找到了这个错误。一旦完成解决方案,我会尽快写出答案。简短回答:有2个错误 - 错误1查看更新AS400zuSellingBenutzer2有时有2个结果有时用于CSDokument和Bug 2中的一个条目表AS400Auftrag中有2个条目,然后在这两个条目之间切换。所以看起来像'SET'切换了两个条目,但这只是偶然。谢谢阅读。 – user1673665