代码之家  ›  专栏  ›  技术社区  ›  Bluephlame

在Visual Studio中从数据库项目执行脚本

  •  2
  • Bluephlame  · 技术社区  · 16 年前

    我正在尝试向Visual Studio中的生成过程添加一些存储过程(使用msbuild)。

    我的解决方案中添加了一个数据库项目(*.dbp),但是与VS中的其他一些数据库项目不同,我无法构建或运行它。(我相信这是我使用sql2000时所需的项目文件)

    如何在构建项目时运行SQL脚本? 我可以通过右键单击并按运行来运行脚本。

    2 回复  |  直到 16 年前
        1
  •  2
  •   si618    16 年前

    数据库项目的构建方式与普通项目不同。如果要在此项目内执行脚本,我的建议是扩展与msbuild兼容的关联项目(csproj、vbproj等),并使用所选工具从中引用/执行脚本。

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

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

        2
  •  1
  •   Raj More    16 年前

    可以生成数据库项目。

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

    部署时,项目会先生成,然后再部署。代码将与预构建和后期构建脚本以及预部署和后期部署脚本一起部署。

    因此,如果希望在构建项目时运行脚本,则需要查看项目属性中“构建事件”下的预构建和后期生成。