我有一个 SQL Server 2000 数据库备份,但我没有安装 SQL Server 2000。我安装了 SQL Server 2005。我不想安装多个 DB 服务器软件。在 SQL Server 2005 或 SQL Server 2008 中是否可以托管来自较小系统的数据库?即在 2005 中托管 2000 数据库?
答案1
SQL 2005(可能是 2008)中有一个兼容模式,可让您运行 2k 数据库 - 我们在生产中这样做,因此它是稳定的。我认为当我们使用兼容模式迁移到 2k5 时,开发人员没有遇到任何问题。林克
答案2
是的。
效果很好。我已经这样做过很多次了。
您可以将 SQL 2000 文件还原到 SQL 2005 和 2008,也可以直接附加 SQL 2000 db 文件。升级 DB 版本是可选的,并且仅当您需要针对 db 使用较新的 TSQL 等时才需要。
如果所讨论的数据库是 SQL 2000 级别,您甚至可以针对 SQL 2008 运行 dblib 客户端....
答案3
这是不可能的。每个引擎仅支持自己的数据库格式,并且格式会随版本而变化。这意味着 SQL Server 2005 SP1 将无法“托管” SQL Server 2005 RTM 版本的数据库,也无法托管 SQL Server 2005 SP2 版本的数据库。
然而,升级备份或现有格式。引擎将知道如何从 SQL 7 或 SQL 2000 版本升级到其当前格式。因此,您可以在 SQL 2005 上恢复 SQL 2000 备份,但此操作会将以前的 2000 数据库升级为 2005 格式。一旦升级,数据库就永远不能降级。因此,如果您将数据库附加到 SQL 2008,则升级为 SQL 2005 无法理解的格式,并且无法将其降级回原样。
我希望这能让您清楚地了解托管早期版本的数据库和在“兼容模式”下运行当前版本之间的区别。当您在 SQL 2005 上打开 SQL 2000 数据库并将兼容模式设置为 80 时,升级已经发生并且该数据库将永远不可能在 SQL 2000 中再次使用。
仅当需要早期操作模式的应用程序使用某些功能时才需要“兼容模式”,并且兼容模式严格指代早期版本中存在的功能。例如,兼容模式为 80 的数据库仍将具有 SQL 2005 特定的视图,如“sys.tables”。
更新
尽管遭到了众多反对,但我的说法仍然是正确的。