我在VS2012
中创建了一个数据库项目。我添加了数据库结构。发布和比较数据库效果很好。
现在在发布时我想自动加载几个带有默认数据的表。
我使用 SQL Management Studio 生成的 INSERT
语句创建了五个脚本文件。它们被添加到我的数据库项目中的脚本文件夹中。
然后我设置了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
该文件提示语法错误。
最佳答案
事实证明,Visual Studio 用错误的语法警告愚弄了我!我的设置完全有效。
为了避免警告,右键单击文件内的任意位置并选择“执行设置 - SQLCMD 模式”。
还有一个名为 SQLCMD 模式的工具栏按钮可以执行相同的操作。
以下是菜单项,以防您找不到工具栏按钮:
关于sql - VS2012 部署后脚本引用了其他几个脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16787667/