Sql server 将SQL.Bak转换为BacPac
我正在使用SQL server 2012,我有一个数据库文件(.bak)试图将其导出为(.BacPac)文件,以便将其导入Azure。问题在转换过程中(验证方案模型) 我有以下错误:Sql server 将SQL.Bak转换为BacPac,sql-server,azure,azure-sql-database,Sql Server,Azure,Azure Sql Database,我正在使用SQL server 2012,我有一个数据库文件(.bak)试图将其导出为(.BacPac)文件,以便将其导入Azure。问题在转换过程中(验证方案模型) 我有以下错误: “错误SQL71501:视图:[dbo].[AC_节]对对象[dbo].[sueres]的引用未解析。” “错误SQL71562:过程:[dbo].[milp]对对象[tempdb].[dbo].[sysob].[xtyp]的引用未解析。” 许多其他表和对象也会出现错误 如何解决此问题,或者是否有其他方法将
如何解决此问题,或者是否有其他方法将数据库转换为.bacpac。在将数据库迁移到SQL Azure之前,请尝试解析无效对象。无效对象是指引用对象不再存在的对象(存储过程、视图等),包括tempdb上的对象
SELECT
QuoteName(OBJECT_SCHEMA_NAME(referencing_id)) + '.'
+ QuoteName(OBJECT_NAME(referencing_id)) AS ProblemObject,
o.type_desc,
ISNULL(QuoteName(referenced_server_name) + '.', '')
+ ISNULL(QuoteName(referenced_database_name) + '.', '')
+ ISNULL(QuoteName(referenced_schema_name) + '.', '')
+ QuoteName(referenced_entity_name) AS MissingReferencedObject
FROM
sys.sql_expression_dependencies sed
LEFT JOIN sys.objects o
ON sed.referencing_id=o.object_id
WHERE
(is_ambiguous = 0)
AND (OBJECT_ID(ISNULL(QuoteName(referenced_server_name) + '.', '')
+ ISNULL(QuoteName(referenced_database_name) + '.', '')
+ ISNULL(QuoteName(referenced_schema_name) + '.', '')
+ QuoteName(referenced_entity_name)) IS NULL)
ORDER BY
ProblemObject,
MissingReferencedObject
我建议您在将数据库迁移到SQL Azure之前使用Data Migration Assistant。此工具此时不会检测到无效对象
希望这有帮助
问候,
Alberto Morillo因此我得出结论,一些数据、函数、表格、对象等。。。在我的(.bak)文件中,Azure不支持,,或者你可以说它们过时了。将(.bak)文件部署到Azure的方法是在将文件部署到Azure之前避免、删除或重新写入这些数据,这将改变数据流 不幸的是,Azure database migration assistant不会分析过程并显示您遇到的问题。。您需要手动修复这些错误,这些错误将仅在导入Bacpac时显示。我尝试了该工具,但结果表明我们的服务器“没有足够的服务器级别权限来执行迁移。用于连接到目标服务器的凭据必须是system admin server角色的成员。”