【问题标题】:Executing scripts from a database project in visual studio从 Visual Studio 中的数据库项目执行脚本
【发布时间】:2010-11-16 06:46:43
【问题描述】:

我正在尝试使用数据库项目 (*.dbp) 将一些存储过程添加到 Visual Studio(使用 MSBuild)中的构建过程中。

但是,与 VS 中可用的其他一些数据库项目不同,它无法构建或运行。 (我相信这是我想要的项目文件,因为我正在使用 SQL2000)

如何在构建项目时运行 SQL 脚本? 我知道我可以通过右键单击并按运行来运行脚本......但这不是问题。

【问题讨论】:

    标签: database visual-studio build msbuild database-project


    【解决方案1】:

    数据库项目不像普通项目那样构建。如果您想在此项目中执行脚本,我的建议是扩展与 MSBuild 兼容的相关项目(csproj、vbproj 等)并使用您选择的工具从那里引用/执行您的脚本。

    如何实现它取决于您,例如,您可以连接到BeforeBuild 目标并使用SqlExecute 任务执行脚本。

    FWIW,我们必须支持 SQL Server 2000、2005、2008+,所以任务变得更加困难;想想 NVarchar(max) (2005+) vs NText (2000+) 加上版本之间的所有 sp 重命名等。我们还想要一个开发人员、QA 和安装人员用来确保一致性的脚本。所以我们的方法是一个自定义工具,它允许在脚本中替换令牌/关键字,它提供了不同 SQL Server 版本和客户安装(例如用户/登录详细信息、数据库名称)之间的灵活性,以及​​集成到各种技术以便脚本可以运行命令行、MSBuild、使用 Wix 项目的 MSI 自定义操作,或者我们需要它们运行的​​任何东西。

    【讨论】:

      【解决方案2】:

      可以构建数据库项目。

      它们不能运行 - 它们可以被部署。

      当您部署时,项目会构建然后部署。代码将与 Pre-Build 和 Post-Build 脚本以及 Pre-Deployment 和 Post-Deployment 脚本一起部署。

      因此,如果您希望脚本在构建项目时运行,您需要查看项目属性中构建事件下的 Pre-Build 和 Post-Build。

      【讨论】:

        猜你喜欢
        • 2011-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-11
        • 2014-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多