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

Jak*_*ner 40 sql database-project visual-studio-2012

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

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

我创建了五个脚本文件,其中包含INSERTSQL Management Studio生成的语句.它们被添加到我的数据库项目中的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
Run Code Online (Sandbox Code Playgroud)

所以我写了我的文件:

:r .\MyScript1.sql
:r .\MyScript2.sql
:r .\MyScript3.sql
:r .\MyScript4.sql
:r .\MyScript5.sql
Run Code Online (Sandbox Code Playgroud)

该文件抱错语法错误.

Jak*_*ner 81

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

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

还有一个名为SQLCMD Mode的工具栏按钮执行相同的操作.

如果找不到工具栏按钮,这是菜单项: 在此输入图像描述