【问题标题】:Building from commandline a database project targetting SQL Server 2012从命令行构建一个面向 SQL Server 2012 的数据库项目
【发布时间】:2012-08-28 10:21:37
【问题描述】:

我在 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 构建项目没有任何问题。


更新:我不确定我有什么类型的项目。项目属性如下所示:

补充资料:

【问题讨论】:

    标签: visual-studio command-line build sql-server-2012 database-project


    【解决方案1】:

    您使用的似乎是旧的数据库项目类型,它只支持 SQL Server 2008。有一个新的数据库项目类型支持 SQL Server 2012(具有非常通用的名称“SQL Server 数据库项目”)用于Visual Studio 2010,您可以将其作为SQL Server Data Tools 最新版本的一部分进行安装。

    新项目类型需要不同的命令行语法,您可以找到 here

    顺便说一句,Visual Studio 可以轻松地将您现有的数据库项目转换为新的项目类型。

    【讨论】:

    • 我已经安装了 Visual Studio 处理此项目所需的数据工具,并且按照说明,我可以使用 Visual Studio 毫无问题地构建项目。
    • 您项目的 .dbproj 扩展名意味着您仍在使用旧的项目模板。旧模板不支持 SQL Server 2012。
    • 嗯,我确实在 .\sql\debug 文件夹中找到了一个 dacpac 文件。会这样吗?
    • 不。新模板没有 sql 文件夹。 (.dacpac 文件被写入 bin\Debug。)您需要通过在 Visual Studio 的解决方案资源管理器中右键单击它并选择 Convert to SQL Server Database project 来升级您的项目。
    • 嗯...我似乎没有那个菜单命令。但是似乎我错了,主项目文件是 .sqlproj 而不是 .dbproj(dbproj 似乎是剩余的)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-01
    • 1970-01-01
    • 2018-07-06
    • 2010-10-17
    相关资源
    最近更新 更多