所以我得到了一个精简后的 SQL 语句,看起来像这样:
SELECT column
FROM table t (nolock)
LEFT OUTER JOIN table2 (nolock) t2 on t.id = t2.id
此语句适用于我的 SQL 2005 和 SQL 2008 环境。它不适用于远程 SQL 2005 环境。我已将最后一行更改为:
LEFT OUTER JOIN table2 t2 (nolock) on t.id = t2.id
这适用于远程环境。
抛开 (nolock) 是否合适以及语法应保持内部一致的问题,您知道为什么会发生这种情况吗?我尝试搜索解决此问题的修补程序/知识库,但一无所获。 SQL Server 上是否有可能导致此行为的设置?
最佳答案
检查您的数据库兼容性级别。
此语法必须为 90
才能发挥作用。
刚刚检查:
sp_dbcmptlevel 'test', 80
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
SELECT TOP 100 *
FROM master t (nolock)
LEFT OUTER JOIN master (nolock) t2 on t.id = t2.id
Сообщение 102, уровень 15, состояние 1, строка 3
Incorrect syntax near 't2'.
关于sql - SQL Server 上的 (nolock) 和表别名的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1194841/