VS2012后部署脚本引用其他几个脚本

时间:2013-05-28 08:45:35

标签: sql visual-studio-2012 database-project

我在VS2012创建了一个数据库项目。我添加了数据库结构。它可以很好地发布和比较数据库。

现在发布我想自动加载几个带有默认数据的表。

我创建了五个脚本文件,其中包含从 SQL Management Studio 生成的INSERT语句。它们被添加到我的数据库项目中的Script文件夹中。

然后我设置BuildAction=PostDeploy。这很好用。但由于某种原因,只能将一个脚本设置为PostDeploy ....

我意识到我可以将所有脚本移动到一个文件中。但我有很多,并且非常希望将它们分组在单独的文件中以维持一些顺序。

然后我创建了一个PostDeploy.sql文件并尝试从那里引用所有其他脚本文件。文件标题给出了方向:

Post-Deployment Script Template                         
----------------------------------------------------------------------------
This file contains SQL statements that will be appended to the build script.
Use SQLCMD syntax to include a file in the post-deployment script.
Example:      :r .\myfile.sql

所以我写了我的文件:

:r .\MyScript1.sql
:r .\MyScript2.sql
:r .\MyScript3.sql
:r .\MyScript4.sql
:r .\MyScript5.sql

该文件因语法错误而抱怨。

2 个答案:

答案 0 :(得分:81)

原来,Visual Studio用错误的语法警告欺骗了我!我的设置完全有效。

要避免警告,请右键单击文件中的任意位置,然后选择“执行设置 - SQLCMD模式”。

还有一个名为SQLCMD Mode的工具栏按钮也可以做同样的事情。

以下是菜单项,以防您找不到工具栏按钮: enter image description here

答案 1 :(得分:0)

您可能还需要检查并查看项目文件中的更改。我最终不小心重命名了我的发布后脚本,这导致了此错误。解决了Project文件中的部署后脚本问题,并且该脚本再次开始正常工作。