【问题标题】:Use SQLMetal on SQL Azure Database在 SQL Azure 数据库上使用 SQLMetal
【发布时间】:2012-04-04 06:07:51
【问题描述】:

由于我不想讨论的原因,我们的主数据库架构目前仅在 SQL Azure 中。我们正在使用像 Enzo Backup 这样的工具在本地将其关闭(我们正在等待他们的开发人员修复我们在尝试下载时遇到的一些错误),但与此同时,我想生成一个 Linq-to-Sql来自 SQL Azure DB 架构的 ORM 映射。当我尝试这样做时,输出会生成一堆这样的错误消息:

警告:SQM1012:无法从中提取表 'dbo.[TableName]' SqlServer。对象名称“syscmets”无效。

是否可以从 SQL Azure 数据库生成 ORM 映射?

编辑

请注意,即使在最新版本 (2008 R2) 中,从 SSMS 生成脚本也不起作用。当您尝试在 SQL Azure 数据库实例上生成脚本时,您在生成的报告中收到以下错误,并且在处理第一个对象之前它就失败了:

System.IndexOutOfRangeException:索引超出范围 大批。在 Microsoft.SqlServer.Management.SqlScriptPublish.GeneratePublishPage.worker_DoWork(对象 发件人,DoWorkEventArgs e) 在 System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e) 在 System.ComponentModel.BackgroundWorker.WorkerThreadStart(对象 论据)

编辑 2

我刚刚尝试使用免费的SMOscript 工具,它会生成相同类型的错误消息:

Objects in database [DatabaseName] on server [ServerAddress]:
Error: Index was outside the bounds of the array.

因此,目前看来,轻松生成 DDL 脚本是不可能的,而且它在 2008 R2 中针对 SQL Azure DB 在SMO 级别上被破坏了。

【问题讨论】:

  • 你接受了这个答案stackoverflow.com/a/7571609/21336。它不适用于这里吗?
  • 为什么不尝试使用 sqlservermw.codeplex.com 将 Azure 数据库传输到本地 SQL Server?我已经以这种方式使用了数十次,并且它对我的数据非常有效。在本地获取数据后,对本地服务器执行 Linq-2-SQL 映射。
  • @devio:我从来没有让它工作。我接受了,因为这是当时最好的答案。 (老实说,我忘记了我问的那个问题:S)
  • @astaykov:该网址不存在。你的意思是sqlazuremw.codeplex.com
  • 啊,是的,我的错。它是 SQL Azure 迁移向导。 (sqlazuremw.codeplex.com)

标签: azure sqlmetal


【解决方案1】:

看起来一切都可以追溯到 SMO。我终于安装了 2008 R2 SP1 并在我的计算机上运行,​​看起来我将能够正确生成脚本(最终)。感谢大家的帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-06
    • 1970-01-01
    • 1970-01-01
    • 2017-09-22
    相关资源
    最近更新 更多