Sev*_*vki 32 sql-server-2005 sql-server-2008
使用 SQL 2008 构建的数据库文件与 2005 不兼容。有解决办法吗?
Jer*_*hka 16
您可以将数据从一个 SQL Server 实例 BCP 到另一个实例。这将是将数据从一个版本复制到另一个版本的最快方法。根据数据量,可能需要很长时间。
Bra*_*adC 16
不需要第 3 方工具。SQL Server 2008 Management Studio 为我们提供了一个非常强大的工具来向下转换数据库,因为它们向“脚本数据库”向导添加了“脚本数据”选项。
只需右键单击 SQL2008 SSMS 中的 DB,然后转到“任务”,然后“生成脚本”
完成向导,确保在表/视图选项下为“脚本数据”选择“真”。选择所有对象,然后运行它在 2005 服务器上创建的脚本。(请记住,创建的脚本可能是巨大的,如果原来的数据库是非常大的!)
请注意,您甚至可以针对 SQL2005 服务器运行该向导,将 SQL2005 数据库下转换为 SQL2000(当然,您需要在工作站上安装 2008 工具)。
Dav*_*ett 15
据我所知,没有直接的方法可以将数据库从 2008 年的格式降级到 2005 年的格式。
我过去这样做的方式(实际上是使用旧版本的 SQL 服务器,但过程是相同的)是:
INSERT destinationserver.destinationdb.schema.table SELECT * FROM sourcedb.schema.tableINSERT schema.table SELECT * FROM sourceserver.sourcedb.schema.table如果您已将实例链接在一起) )首先复制数据并在第 3 步之后添加所有其他结构(索引、过程、触发器等)可能更有效。这避免了由约束和触发器引起的行插入排序问题,并在第 3 步构建索引。理论上 end 应该比在添加所有数据时构建它们更快 - 尽管如果您的表上有任何聚集索引,请在添加数据之前创建这些索引,因为在事实之后创建它们不会更快。
当然,这一切都假设您的对象都没有使用 SQL 2008 特定功能 - 如果它们使用,您将希望在重建模式时出现错误时找出并修复这些问题。如果您的任何代码依赖于官方未定义的行为,而这些行为恰好在 SQL Server 版本之间有所不同,那么您可能会遇到一些更微妙和难以捉摸的错误,以便日后追查和解决。
我遇到了类似的情况,并使用数据库发布向导从 SQL Server 2008 数据库为 SQL Server 2005 编写架构和数据脚本。