我想使用 Server Management Studio 提取 MSSQLServer 数据库的数据库架构。我使用提取命令“提取数据层应用程序..”
数据库中有对另一个数据库的多个引用。因此,我收到以下错误。
提取数据库时出错:数据包架构模型验证失败。
错误 SQL71562:验证元素 [dbo].[x] 具有对对象 [dbo].[y] 的未解析引用时出错。从此平台创建包时不支持外部引用。
问题是,SSMS 使用带有参数的 SQLPackage.exe/p:验证提取=True。当我使用控制台并在没有此参数的情况下调用 SQLPackage.exe 时,它使用/p:验证提取=False默认情况下,我可以创建 .dacpac 文件。
有没有办法配置 SSMS 来禁用验证?
我也找不到在 SSMS(2008 R2 或 2012)中工作的方法,但带有 SSDT 的 Visual Studio(2013)似乎可以工作:在 VS 中,转到 SQL Server 对象资源管理器,连接到有问题的服务器,右键单击有问题的数据库,提取数据层应用程序,然后调整提取设置,其中之一是“验证提取”。我不知道为什么 MS 不将其构建到 SSMS 中。
不过,我注意到的一件有点奇怪的事情是,VS 只会通过此方法提取 .DacPac。即使您选择将数据添加到数据提取,扩展名仍然是 .DacPac。我的印象是 .DacPacs 仅适用于架构,而 .BacPacs 则适用于架构 + 数据。无论如何,在 VS 创建 .DacPac(架构 + 数据)文件后,SSMS 能够使用“部署数据层应用程序...”向导很好地导入它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)