我想使用Server Management Studio提取MSsqlServer数据库的数据库模式.我使用Extract命令“Extract Data-tier Application ..”
提取数据库错误:验证数据包的架构模型失败.
错误sql71562:验证元素[dbo]时出错.[x]有一个未解析的对象[dbo]引用[y].从此平台创建包时不支持外部引用.
问题是,SSMS使用sqlPackage.exe参数/ p:VerifyExtraction = True.当我使用控制台并调用sqlPackage.exe没有这个参数,它使用/ p:VerifyExtraction = False默认情况下,我可以创建.dacpac文件.
有没有办法配置SSMS来禁用验证?
解决方法
我无法找到在SSMS(2008 R2或2012)中有效的方法,但是使用SSDT的Visual Studio(2013)似乎可以工作:在VS中,转到sql Server对象资源管理器,连接到有问题的服务器右键单击相关数据库,提取数据层应用程序,然后调整提取设置,其中之一是“验证提取”.我不知道为什么MS不会将其构建到SSMS中.
我注意到一个有点奇怪的事情,但是,尽管如此,VS只会通过这种方法提取一个.DacPac.即使您选择将数据添加到提取,扩展名仍然是.DacPac.我的印象是.DacPacs仅用于Schema,而.BacPacs是Schema Data.无论如何,在VS创建了.DacPac(模式数据)文件之后,SSMS能够使用“部署数据层应用程序…”向导导入它.