Visual Studio认为正确的SQL语法不正确

Aar*_*nus 14 t-sql database-project syntax-error visual-studio-2013

在Visual Studio 2013中,我创建了一个数据库项目并导入了现有数据库.起初一切都很好,项目构建和生成创建脚本.

但是,现在Visual Studio似乎认为存在SQL语法错误,返回了几个SQL46010: Incorrect syntax near:错误.这些都来自VS生成的代码 - 我没有写过任何代码.

例1:

ALTER ROLE [db_owner] ADD MEMBER [SomeUser];
SQL46010: Incorrect syntax near ADD.
Run Code Online (Sandbox Code Playgroud)

例2:

DECLARE @Foo NVARCHAR(7) = 'abcdefg';
SQL46010: Incorrect syntax near =.
Run Code Online (Sandbox Code Playgroud)

如果我将代码复制/粘贴到SSMS中,一切正常.

不幸的是,这些阻止了项目的构建,这意味着我无法发布.由于它们是错误而不是警告,我无法在项目设置中将它们设置为忽略.

我可以将问题文件的Build Action设置为None,但我需要在发布时包含这些文件.

我试过了:

  • 删除并重新添加相同的代码
  • 将代码复制/粘贴到新的SQL文件
  • 关闭并重新打开解决方案
  • 关闭并重新打开Visual Studio
  • 更新Microsoft SQL Server数据工具(SSDT)
  • 更新Visual Studio

我能找到的最接近的问题是2012年的这个MSDN线程,说明有一个错误的SSDT SQL解析器(这促使我尝试更新SSDT).

GSe*_*erg 29

调用的项目属性中有一个设置Target platform告诉VS要检查语法的SQL Server版本.

这些是T-SQL语法的相对新增功能,如果语法设置为SQL Server 2005,它们可能无法正常工作.

Visual Studio 2013数据库项目设置