43

我在VS2012. 我添加了数据库结构。它可以很好地发布和比较数据库。

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

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

然后我设置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

该文件抱怨语法错误。

4

2 回答 2

86

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

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

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

这是菜单项,以防您找不到工具栏按钮: 在此处输入图像描述

于 2013-05-28T08:45:34.520 回答
0

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

于 2020-08-10T17:11:25.643 回答