【问题标题】:Attach a .MDF file created by SQL Server 2008 in SQL Server 2000在 SQL Server 2000 中附加由 SQL Server 2008 创建的 .MDF 文件
【发布时间】:2012-11-13 23:31:52
【问题描述】:

我在 SQL Server 2008 中创建了一个数据库。我分离了数据库,并将.mdf 复制到了运行 SQL Server Enterprise Manager (SQL Server 2000) 的服务器上。

当我尝试附加 MDF 时,我得到...

Microsoft SQL-DMO(ODBC SQL 状态:HY000)错误 602:找不到 数据库 ID 13、对象 ID 1、索引 ID 1 的 sysindexes 中的行。运行 sysindexes 上的 DBCC CHECKTABLE。

这是什么意思?这是因为数据库是在较新版本中创建的吗?

【问题讨论】:

  • 不能在任何情况下都将在 SQL Server 2008 上创建的数据库重新附加或恢复到 SQL Server 的早期版本。这是不可能的 - 没有技巧,没有解决方法,没有工具 - 只是无法完成。
  • 您将需要 (1) 在 SQL Server 2000 中创建新数据库,(2) 将所有数据库对象编写到 2008 数据库中的 SQL 脚本中,(3) 在 2000 版本中运行这些脚本,以及 (4) 还使用脚本或 SQL 数据差异工具(如 Red-Gate SQL Data Compare)将数据从 SQL Server 2008 移动到 2000。

标签: sql-server sql-server-2000 mdf


【解决方案1】:

documentation上的(我相信已经贬值了,但在SQL Server 2000中使用过)sp_attach_db存储过程:

由较新版本的 SQL Server 创建的数据库不能 附在早期版本中。

我认为您必须编写数据库架构和数据的脚本。

Pinal Dave 有一个很好的教程,教你如何做到这一点here - 请记住确保选择以下设置:

在一般情况下:

  • 服务器版本脚本:SQL Server 2000

在表格/视图选项下:

  • 脚本数据:正确

记得仔细检查您可能感兴趣的任何其他设置,例如外键、触发器等。

【讨论】:

  • 感谢您的帮助,我生成了 .sql 文件,其中包含在 sql server 2000 下创建数据库的说明。我只是想知道如何在 sql server 2000 中执行它,我尝试通过复制全部,粘贴只是复制文件的一部分
  • @younesfaqri 生成的文件可能很大,所以我建议使用 OSQL:msdn.microsoft.com/en-us/library/aa213087%28v=sql.80%29.aspx
【解决方案2】:

这是可行的,但您需要先将其转换为 SQL 2000 格式,然后再将其分离并附加到旧服务器上。步骤如下:

在企业管理器中,右键单击数据库

选择属性

点击左侧的选项

将“兼容级别”更改为 SQL Server 2000 (80)

然后在旧服务器上重新连接之前保存并分离。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-21
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    相关资源
    最近更新 更多