2014-10-28 55 views
1

我執行我的測試數據庫下面的查詢,一切運作良好:SQL語句在測試運行正常,打破上PROD

SELECT TABLE_NAME     AS Name, 
     (SELECT TOP 1 value 
     FROM Fn_listextendedproperty (NULL, 'schema', 'dbo', 'table', [TABLE_NAME], DEFAULT, NULL) 
     WHERE name = 'Description') AS [Description] 
FROM information_schema.tables tb 
     INNER JOIN Fn_listextendedproperty (NULL, 'schema', 'dbo', 'table', DEFAULT, NULL, NULL) prop 
       ON prop.objname COLLATE DATABASE_DEFAULT = tb.TABLE_NAME COLLATE DATABASE_DEFAULT 
        AND prop.name = 'SettingTable' 
        AND prop.value = '1' 
ORDER BY TABLE_NAME ASC 

當我的生產數據庫執行,我得到以下錯誤:

Msg 102, Level 15, State 1, Line 3 
Incorrect syntax near 'TABLE_NAME'. 

測試DB版本:10.50.1617.0

PROD DB版本:10.50.2550.0

有任何想法嗎?

+1

我在我的sql server 2008中試過同樣的查詢,它工作正常。 – 2014-10-28 13:26:30

+0

這也適用於我的2008和2012版本以及[SQL Fiddle的2008 R2版本](http://sqlfiddle.com/#!3/d41d8/40493)。 – GarethD 2014-10-28 13:31:31

+0

@Arne Deruwe:如果刪除查詢中ORDER BY TABLE_NAME asc部分會發生什麼? – Dan 2014-10-28 13:32:23

回答

0

原來PROD數據庫運行在SQL Server 2000兼容模式下。 將此設置爲2008解決了問題和我的理智。謝謝你的回覆!