我正在將應用程序從SQL Server 2008遷移到SQL Server 2012 Express,並且一切正常,但有幾個存儲過程說我有語法錯誤。我在網上查找並沒有找到答案 - 是否有SQL Server 2008(Standard)支持的語法類型,但不支持SQL Server 2012 Express?從SQL Server 2008遷移到SQL Server 2012 Express
回答
我想有一種可能性,如果在2008年你用2000兼容模式,你的存儲過程已經舊風格的外連接:
SELECT o.name, c.name
FROM sys.objects AS o, sys.columns AS c
WHERE o.[object_id] *= c.[object_id];
該語法同樣適用於SQL Server 2000中,但已自那時起棄用。如果您使用80兼容模式,在2005年,2008年和2008年R2,您可以穿上它。由於SQL Server 2012中,你可以不再使用80兼容模式,所以上面的代碼會失敗:
消息102,級別15,狀態1,行3
附近有語法錯誤 '* ='。
在2008年,你會得到這個錯誤信息,而不是:
消息4147,15級,狀態1,第3行
查詢使用非ANSI外部聯接 運營商("*=" or "=*"
)。要不加修改地運行此查詢,請使用 ALTER DATABASE的SET COMPATIBILITY_LEVEL選項將當前數據庫的兼容級別設置爲80。建議用 強制重寫使用ANSI外連接運算符的查詢(LEFT OUTER JOIN,RIGHT OUTER JOIN)。在未來版本的SQL Server中,即使在 向後兼容模式下,也不支持非ANSI連接運算符。
但是,如果你改變數據庫中的錯誤信息提示,它會工作:
ALTER DATABASE foo SET COMPATIBILITY_LEVEL = 80;
這似乎是一個舒展。但是,如果沒有一些真實的信息,這是我唯一的猜測。
「* ='」附近的語法錯誤是我得到的消息之一。之前它是一個版本2000兼容的數據庫。我從來沒有見過這種語法。轉換或學習需要轉換的內容的最佳方式是什麼? – zortacon
@zortacon:錯誤消息說明了這一切:'強烈建議使用ANSI外連接運算符(LEFT OUTER JOIN,RIGHT OUTER JOIN)重寫查詢。「 –
- 1. 從SQL Server 2008 Express轉到SQL Server 2012
- 2. 從SQL Server 2000遷移到SQL Server 2008
- 3. SQL Server 2005遷移到SQL Server 2014 express
- 4. 將數據庫從SQL Server 2008 Express移至SQL Server 2012
- 5. SQL Server 2000到SQL Server 2008 R2遷移
- 6. Sql Server Express 10.0.1600遷移到Sql Server 2008 10.50.160
- 7. 從SQL Server 2008 R2 Express遷移到SQL Server 2008 R2開發人員版
- 8. 從mysql遷移到sql server express - 關注
- 9. 如何從C#代碼將SQL Server CE遷移到SQL Server 2012 Express
- 10. 從SQL Server 2005遷移到2012
- 11. 從SQL Server 2008遷移到Azure
- 12. 從SQLCE 4遷移到SQL Server 2008
- 13. 從oracle到sql server 2008的遷移
- 14. 從Postgres遷移到SQL Server 2008
- 15. 從SQL Server 2000遷移到SQL Server 2005
- 16. SQL Server 2008 R2快速升級到SQL Server 2012 Express
- 17. 將SSIS包從SQL Server 2005遷移到SQL Server 2008
- 18. 問題從SQL Server 2000遷移到SQL Server 2008時
- 19. 如何將架構從SQL Server 2008遷移到SQL Server CE 4?
- 20. SQL Server Express 2008
- 21. 從SQL Server 2012 Express到SQL Server 2014 Express的更新
- 22. 從SYBASE SQLAnywhere 11.0遷移到SQL Server 2008 R2 Express
- 23. SQL Server CE 3.5到SQL Server遷移
- 24. MVC遷移IdentityUser SQL Server 2012遷移
- 25. 的SQL Server 2008 R2遷移到Azure的
- 26. SQL Server 2008與SQL Server 2008 Express大小
- 27. 從SQL Server 2008 Express將數據庫傳輸到SQL Server 2008
- 28. 從SQL Server 2008 R2 Express升級到SQL Server 2008 R2企業
- 29. SQL Server遷移
- 30. 無法將SQL Server 2008 R2 Express備份文件還原到SQL Server 2012 Express
沒有,我能想到的。也許你可以展示一個例子和ACTUAL錯誤消息。這裏有些聰明的人,但很少有讀者。 –
對不起,我知道它是模糊的,但錯誤都在這個地方。一些語法,一些說一個對象不存在,等等。我以前沒有使用MS產品,但我認爲它可能是像從perl4到perl5,或從php4到php5,在某些事情中斷,並且存在轉換指導那裏。我不知道是這樣,我還沒有找到一個,但我懷疑這樣的事情可能是答案。我將添加一些實際的錯誤消息。謝謝。 – zortacon