我正在尝试将一些存储过程添加到visual studio中的构建过程中(使用MSBuild)。
我在我的解决方案中添加了一个数据库项目(* .dbp),但与VS中可用的其他一些数据库项目不同,我无法构建或运行它。 (我相信这是我想要的项目文件,因为我正在使用SQL2000)
如何在构建项目时运行SQL脚本? 我可以通过右键单击并按下run来运行脚本。
答案 0 :(得分:2)
数据库项目不像普通项目那样构建。如果你想在这个项目中执行脚本,我的建议是扩展MSBuild兼容的相关项目(csproj,vbproj等),并使用你选择的工具从那里引用/执行你的脚本。 p>
如何实现它取决于您,例如,您可以使用BeforeBuild任务挂钩SqlExecute目标并执行脚本。
FWIW,我们必须支持SQL Server 2000,2005,2008 +,因此任务变得更加困难;认为NVarchar(max)(2005+)vs NText(2000+)加上版本之间的所有sp重命名等。我们还想要一个开发人员,QA和安装程序用来确保一致性的单一脚本。所以我们的方法是一个自定义工具,它允许脚本中的令牌/关键字替换,这提供了不同SQL Server版本和客户安装之间的灵活性(例如用户/登录详细信息,数据库名称),以及与各种技术的集成,因此脚本可以从命令行,MSBuild,使用Wix项目的MSI自定义操作,或者我们需要它们运行的任何内容。
答案 1 :(得分:1)
可以构建数据库项目。
它们无法运行 - 它们可以被部署。
部署时,项目构建然后部署。代码将与Pre-Build和Post-Build脚本以及预部署和后部署脚本一起部署。
因此,如果您希望在构建项目时运行脚本,则需要在项目属性中查看构建事件下的预构建和后构建。