我们正在使用TFS 2013和SQL Server 2014。我们的客户请求TFS项目,他们也使用TFS 2013,但是SQL Server版本为2012。我们如何进行迁移?在从2014降级到2012时,简单的备份和还原是否有效?
我们正在使用TFS 2013和SQL Server 2014。我们的客户请求TFS项目,他们也使用TFS 2013,但是SQL Server版本为2012。我们如何进行迁移?在从2014降级到2012时,简单的备份和还原是否有效?
你不能这样做 - 你不能从一个更新的版本(如2014)的SQL Server附加/分离或备份/还原数据库到一个旧版本(SQL Server 2012) - 内部文件结构太不同以至于不支持向后兼容性。
不行 - 在SQL Server 2014中将兼容级别设置为110
(适用于SQL Server 2012)也没有帮助; 它将防止您的T-SQL代码使用新的SQL Server 2014 T-SQL功能,但它不会以任何方式改变数据库文件的内部结构。
您可以通过以下方式解决此问题:
在所有机器上使用相同版本的SQL Server - 然后您可以轻松备份/还原不同实例之间的数据库。
否则,您可以在SQL Server Management Studio(任务 > 生成脚本
)中为结构(表、视图、存储过程等)和内容(表中实际数据)创建数据库脚本,或者使用第三方工具。
或者,您可以使用 Red-Gate 的 SQL Compare 和 SQL Data Compare 这样的第三方工具,在源和目标之间执行 "diffing",从这些差异中生成更新脚本,然后在目标平台上执行这些脚本;这适用于不同的 SQL Server 版本。
@MrHinsh 更新:
警告:虽然这些选项可能适用于您自己的数据库项目,但它们不适用于 TFS。更改数据库架构、移动数据或编辑表格将会破坏 TFS,并使您与 MSFT 的支持协议失效。
备份/恢复在这里不是可行的方法 - 没有任何版本的SQL Server知道下一个版本中数据库文件格式发生了什么变化。
因此,将数据库架构和数据从2014年复制到2012年,并祈祷它能够正常工作 - 可能性很小。在SSMS中应该有一个导入/导出向导,至少以前有。