37
我在VS2012
中创建了一个数据库项目。我添加了数据库结构。它可以很好地发布和比较数据库。VS2012涉及其他几个脚本的部署后脚本
现在发布我想用默认数据自动加载几个表。
我创建了五个脚本文件,其中INSERT
语句从SQL Management Studio生成。他们被添加到我的数据库项目中的脚本文件夹。
然后我设置了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
文件抱怨在错误的语法。
这解决了的Transact-SQL编辑器,并认为这是一个语法错误的问题。但是SSDT项目仍然无法建立或部署。 – Pat
尝试完全关闭Visual Studio。通过删除bin和obj文件夹,* .dbmdl,* .suo和* .user文件来清理SSDT解决方案,然后重新打开SSDT解决方案。您现在应该能够构建/部署您的项目。 – TDN
@Pat看看输出窗口(而不是错误列表) - 你应该看到那里的实际错误。在我的情况下,我的包含文件的路径中有空格,整个路径需要用双引号括起来。不需要清洁/重新启动。 – sellotape