gpt4 book ai didi

tsql - 瑞典 PC 上的程序员不能编写涉及名为 V 和 W 的变量的 T-SQL 查询吗?

转载 作者:行者123 更新时间:2023-12-01 04:46:52 27 4
gpt4 key购买 nike

我有这个 View 源代码,它是在一台装有 SQL Server 2012 和 Latin1 服务器和数据库整理的机器上编写的:

SELECT TOP 100 PERCENT
W.AbteilungsNr AS Bereichsnummer,
W.LongCap AS Bereichsname,
convert(datetime,convert(varchar(10),(SELECT MAX(V.ZeitVon) FROM mna01HSQVorfallsmeldungen V INNER JOIN mna01HSQProtokolle P ON P.[ID]=V.ProtokollID WHERE P.WS_Bereich_ID=W.[ID] AND P.Category=4 AND V.ProposedCat IN (41)),104),104) AS DatumLetzterMTC,
convert(datetime,convert(varchar(10),(SELECT MAX(V.ZeitVon) FROM mna01HSQVorfallsmeldungen V INNER JOIN mna01HSQProtokolle P ON P.[ID]=V.ProtokollID WHERE P.WS_Bereich_ID=W.[ID] AND P.Category=4 AND V.ProposedCat IN (40)),104),104) AS DatumLetzterRWC,
convert(datetime,convert(varchar(10),(SELECT MAX(V.ZeitVon) FROM mna01HSQVorfallsmeldungen V INNER JOIN mna01HSQProtokolle P ON P.[ID]=V.ProtokollID WHERE P.WS_Bereich_ID=W.[ID] AND P.Category=4 AND V.ProposedCat IN (42,44)),104),104) AS DatumLetzterLTI,
convert(datetime,convert(varchar(10),(SELECT MAX(V.ZeitVon) FROM mna01HSQVorfallsmeldungen V INNER JOIN mna01HSQProtokolle P ON P.[ID]=V.ProtokollID WHERE P.WS_Bereich_ID=W.[ID] AND P.Category=4 AND V.ProposedCat IN (40,41,42,44)),104),104) AS DatumLetzterUnfall,
DATEDIFF(day,(SELECT MAX(V.ZeitVon) FROM mna01HSQVorfallsmeldungen V INNER JOIN mna01HSQProtokolle P ON P.[ID]=V.ProtokollID WHERE P.WS_Bereich_ID=W.[ID] AND P.Category=4 AND V.ProposedCat IN (40,41,42,44)),GETDATE()) AS TageUnfallfrei
FROM mna01HSQWerksstruktur W
WHERE W.objType=1
AND W.Reportable=1
ORDER BY
W.AbteilungsNr ASC

如您所见,此代码依赖于代表两个不同表的表别名 WV。当我尝试使用整理 Finnish_Swedish_CI_AI 在数据库上执行它时,它失败了

Msg 207, Level 16, State 1, Procedure vwmna01HSQrptNoAccidentSince, Line 18
Invalid column name 'ID'

现在我已经完成了作业并弄清楚了,字母 V 和 W 在瑞典语排序规则中被认为是相等的。当我们使用 Z 而不是 W 时,它起作用了。

我的问题仍然存在:

  • 这是一个错误,还是将此归类规则应用于源代码(我知道它需要应用于字符串文字和数据)有任何用处
  • 有什么方法可以防止这种情况发生,例如某种 SET 指令或连接属性?

编辑:它出现在 SSMS 查询窗口中以及在代码中使用 OleDB 从 .NET SqlConnection 执行时。无论我们将其作为 CREATE VIEW 语句的一部分执行,还是作为如上所示的临时查询执行,都没有区别。

最佳答案

您的问题可能是区分大小写。检查您的表格是否有“ID”列 - 不要将“Id”弄错。修复您的程序。

关于tsql - 瑞典 PC 上的程序员不能编写涉及名为 V 和 W 的变量的 T-SQL 查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37322911/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com