2016-03-28 97 views
0

爲什麼下面的查詢適用於SQL Server 2008,但不適用於SQL Server 2014?查詢適用於SQL Server 2008,但不適用於2014

SELECT sysobj.ects.* FROM sysobjects 

通知表名有着怎樣的SELECT聲明的sysobj學分之間的點,但FROM聲明沒有點。這發生在任何表格中。你可以把點放在表名的任何地方,它仍然會運行查詢罰款。

2014年,你會看到這樣的錯誤:

The column prefix 'sysobj.ects' does not match with a table name or alias name used in the query.

編輯:2008年的服務器上的兼容性模式設置爲SQL Server 2000中

+0

爲什麼你有'。'在那裏?來自sysobjects的SELECT sysobjects。*可以在兩者中使用。嘗試使用INFORMATION_SCHEMA視圖來訪問系統對象。 – JimmyV

+0

@JimmyV,我不關心訪問表。它只是爲了證明這個問題。你可以用任何表格來做到這一點,你可以看到相同的行爲。 – JMS10

+0

我試圖重現,但我的兼容級別只能回到SQL Server 2005.我不明白你發佈的查詢將如何運作。這是什麼意思?當然,如果你從中間去掉了這個點,它會很有意義。爲什麼你會在遺留代碼中加入一個沒有意義的點? –

回答

0

它不適合我在SQL Server 2008 R2運行。我得到了你說你在2014年得到的同樣的錯誤。我不明白這可以爲你工作。

Noel

+0

數據庫的兼容級別設置爲SQL Server 2000,這也許可能是爲什麼它不能爲你運行。我會更新我的帖子來提到這一點。 – JMS10

相關問題