- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想使用 Server Management Studio 提取 MSSQLServer 数据库的数据库模式。我使用提取命令“提取数据层应用程序..”
数据库中有多个对另一个数据库的引用。因此,我收到以下错误。
提取数据库时出错:数据包的架构模型验证失败。错误 SQL71562:验证元素 [dbo].[x] 具有对对象 [dbo].[y] 的未解析引用时出错。从该平台创建包时不支持外部引用。
问题是,SSMS 使用带有参数 /p:VerifyExtraction=True 的 SQLPackage.exe。当我使用控制台并在没有此参数的情况下调用 SQLPackage.exe 时,它默认使用 /p:VerifyExtraction=False,我可以创建 .dacpac 文件。
有没有办法配置 SSMS 以禁用验证?
最佳答案
我也无法找到适用于 SSMS(2008 R2 或 2012)的方法,但带有 SSDT 的 Visual Studio (2013) 似乎可行:在 VS 中,转到 SQL Server 对象资源管理器,连接到有问题的服务器,右键单击有问题的数据库,Extract Data-tier Application,然后调整Extract Settings,其中之一是“Verify extraction”。我不知道为什么 MS 不只是将其构建到 SSMS 中。
不过,我从中注意到一件有点奇怪的事情,那就是 VS 只会通过这种方法提取 .DacPac。即使您选择向提取中添加数据,扩展名仍然是 .DacPac。我的印象是 .DacPacs 仅用于 Schema Only,而 .BacPacs 用于 Schema + Data。无论如何,在 VS 创建 .DacPac(架构 + 数据)文件后,SSMS 能够使用“部署数据层应用程序...”向导将其正常导入。
关于sql-server - 如何在不使用 VerifyExtraction 的情况下将 MSSQLServer 数据库提取为 .dacpac?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26758512/
我是一名优秀的程序员,十分优秀!