我在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
该文件因语法错误而抱怨。
答案 0 :(得分:81)
原来,Visual Studio用错误的语法警告欺骗了我!我的设置完全有效。
要避免警告,请右键单击文件中的任意位置,然后选择“执行设置 - SQLCMD模式”。
还有一个名为SQLCMD Mode的工具栏按钮也可以做同样的事情。
以下是菜单项,以防您找不到工具栏按钮:
答案 1 :(得分:0)
您可能还需要检查并查看项目文件中的更改。我最终不小心重命名了我的发布后脚本,这导致了此错误。解决了Project文件中的部署后脚本问题,并且该脚本再次开始正常工作。