在Visual Studio 2013中,我創建了一個數據庫項目並導入了一個現有的數據庫。起初一切都很好,而且該項目的建立和生產創建了腳本。Visual Studio認爲正確的SQL語法不正確
但是,現在Visual Studio似乎認爲有SQL語法錯誤,返回幾個SQL46010: Incorrect syntax near:
錯誤。這些都是由VS生成的代碼 - 我沒有寫過任何代碼。
例1:
ALTER ROLE [db_owner] ADD MEMBER [SomeUser];
SQL46010: Incorrect syntax near ADD.
例2:
DECLARE @Foo NVARCHAR(7) = 'abcdefg';
SQL46010: Incorrect syntax near =.
如果我複製/粘貼代碼到SSMS,一切工作正常。
不幸的是,這些阻止項目建設,這意味着我無法發佈。由於它們是錯誤的,而不是警告,所以我不能在項目設置中將它們設置爲忽略。
存在解決方法,我可以將問題文件的構建操作設置爲無,但在發佈時需要包含這些文件。
我曾嘗試:
- 刪除並重新添加相同的代碼
- 複製/粘貼代碼到新的SQL文件
- 關閉並重新打開解決方案
- 關閉並重新打開視覺Studio
- 正在更新Microsoft SQL Server數據工具(SSDT)
- Updatin摹的Visual Studio
我已經能夠找到最近的問題是從2012年this MSDN thread,指出有一個bug SSDT SQL語法分析程序(這促使我嘗試更新SSDT)。