我在 Visual Studio 2010 中有一个面向 SQL Server 2012 的数据库项目,并且至少有一个存储过程使用新语法来重新抛出错误(“THROW;”)
尝试从命令行构建项目,如下所示:
msbuild/t:Build MyDatabaseProject.dbproj
输出:
Microsoft (R) Build Engine Version 4.0.30319.1
[Microsoft .NET Framework, Version 4.0.30319.269]
Copyright (C) Microsoft Corporation 2007. All rights reserved.
Build started 28.08.2012 13:14:23.
Project "F:\My\Path\MyDatabaseProject.dbproj" on node 1 (Build target(s)).
DspBuild:
Creating a model to represent the project...
Loading project files...
Building the project model and resolving object interdependencies...
Validating the project model...
F:\MY\PATH\SCHEMA OBJECTS\SCHEMAS\DBO\PROGRAMMABILITY\STORED PROCEDURES\SOMEPROC.PROC.SQL(95,3,95,3): Build error SQL02010: Incorrect syntax near THROW. [F:\My\Path\MyDatabaseProject.dbproj]
...
我的猜测是我应该添加一个参数来指定 SQL Server 2012 T-SQL 方言,但我对此不确定。
从 Visual Studio 构建项目没有任何问题。
更新:我不太确定我的项目类型。项目属性如下所示:
其他数据:
最佳答案
看起来您正在使用旧的数据库项目类型,该类型仅支持 SQL Server 2008。有一个新的数据库项目类型支持 SQL Server 2012(具有非常通用的名称“SQL Server 数据库项目”) Visual Studio 2010,您可以作为最新版本 SQL Server Data Tools 的一部分进行安装.
新的项目类型需要不同的命令行语法,您可以找到 here .
顺便说一句,Visual Studio 可以轻松地将现有数据库项目转换为新的项目类型。
关于visual-studio - 从命令行构建面向 SQL Server 2012 的数据库项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12157274/