无法为Sql Azure数据库生成脚本:“从以下位置获取对象列表:failed”

时间:2012-10-03 16:12:29

标签: azure azure-sql-database

我按照http://msdn.microsoft.com/en-us/library/ee621790.aspx说明操作,并收到以下错误:

  

从“MYDBNAME”获取对象列表。

失败      

Microsoft.SqlServer.Management.Sdk.Sfc.EnumeratorException:无法检索此请求的数据。 ---> Microsoft.SqlServer.Management.Sdk.Sfc.InvalidVersionEnumeratorException:版本11.0 SqlAzureDatabase不支持操作。 Microsoft.SqlServer.Management.Sdk上的Microsoft.SqlServer.Management.Smo.SqlObject.LoadInitData(String文件,ServerVersion ver,DatabaseEngineType databaseEngineType)中的Microsoft.SqlServer.Management.Smo.XmlReadDoc.LoadFile(程序集a,String strFile)。 Microsoft.SqlServer.Management.Sdk.Sfc中的Microsoft.SqlServer.Management.Sdk.Sfc.ObjectCache.GetElement(ObjectLoadInfo oli,ServerVersion ver,DatabaseEngineType databaseEngineType)中的Sfc.ObjectCache.LoadElement(ObjectLoadInfo oli,ServerVersion ver,DatabaseEngineType databaseEngineType)。 Object.Sache.GetAllElements(Urn urn,ServerVersion ver,DatabaseEngineType databaseEngineType,Object ci),位于Microsoft.SqlServer.Management.Sdk.Sfc.Environment的Microsoft.SqlServer.Management.Sdk.Sfc.Environment.GetObjectsFromCache(Urn urn,Object ci)。 Microsoft.SqlServer.Management.Sdk.Sfc.Enumerator.Process(Object)上的Microsoft.SqlServer.Management.Sdk.Sfc.Enumerator.GetData(Object connectionInfo,Request request)中的GetData(请求请求,对象ci) connectionInfo,请求请求)---内部异常堆栈跟踪的结束---在系统的System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)的Microsoft.SqlServer.Management.SqlScriptPublish.GeneratePublishPage.worker_DoWork(Object sender,DoWorkEventArgs e)处.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

如何获取azure数据库备份或sql脚本?

更新: Azure db:SQL Server 11.0.2065; Sql管理工作室:11.0.2100.60

更新2:

SQL Azure迁移向导报告:

  

Microsoft.SqlServer.Management.Sdk.Sfc

     

无法检索此请求的数据。

     

其他信息:

     

版本11.0 SqlAzureDatabase不支持操作。 (Microsoft.SqlServer.SqlEnum)

同样here

排序规则是Cyrillic_General_CI_AS。如何更改db的排序规则以创建脚本?

更新3:

使用this guide导出数据层应用程序时出现同样的错误:

  

..版本11.0 SqlAzureDatabase上不支持操作。

3 个答案:

答案 0 :(得分:2)

在SqlServer Management Studio 2012中;

右键单击数据库和任务>将数据库部署到Sql Azure,但选择本地服务器作为目标。它将获得azure的副本到您当地。然后,您可以从本地服务器生成脚本。我刚刚发现这种方法,对我有用。

答案 1 :(得分:0)

我建议使用SQL Azure Migration Wizard,因为它比SSMS中的Generate Scripts任务更先进。作为旁注,此工具由SQL Azure团队的人员编写和维护!

答案 2 :(得分:0)

好的,我使用cloudservices.red-gate.com导出了我的azure数据库。我在存储上创建了BACPAC文件。然后我将BACPAC导入我当地的Sql express。奇怪的是,该服务没有抛出我使用SQL Management Studio时出现的错误。