2

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

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

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

4

2 回答 2

2

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

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

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

于 2009-08-03T05:06:45.903 回答
1

可以构建数据库项目。

它们无法运行 - 它们可以被部署。

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

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

于 2009-08-04T16:18:20.513 回答