我正在使用SQL Server 2012,我有一个数据库文件(.bak)尝试将其导出到(.BacPac)文件,因此我可以将其导入Azure。问题在于转换进度(验证方案模型),
我有以下错误:
“错误SQL71501:视图:[dbo]。[AC_Section]有一个未解析的对象[dbo]的引用。[sueres]。”。
“错误SQL71562:过程:[dbo]。[milp]有一个未解析的对象[tempdb]的引用。[dbo]。[sysob]。[xtyp]。”
并且错误与许多其他表和对象一起发生。
如何解决此问题,或者是否有其他方法可以将数据库转换为.bacpac。
答案 0 :(得分:1)
尝试在将数据库迁移到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之前使用数据迁移助手。此工具此时不会检测无效对象。
Microsoft Data Migration Assistant v3.1
希望这有帮助。
此致
Alberto Morillo
答案 1 :(得分:0)
所以我得出结论,Azure中(.bak)文件中的某些数据,函数,表格,对象等不支持,或者你可以说它们已经过时了。将(.bac)文件部署到Azure的方法是在将文件部署到Azure之前避免,删除或重写这些数据,这将改变数据流。