从SQL Server 2000升级到SQL Server 2012的过程


8

我有一个要升级到SQL Server 2012(在其他服务器上运行)的SQL Server 2000数据库。

我认为没有直接的升级途径,但是如果有的话,那是什么?

我目前的计划是:

  1. 备份SQL Server 2000数据库
  2. 在安装了SQL Server 2008的服务器上还原
  3. 将兼容性级别设置为100(SQL Server 2008 / SQL Server 2008 R2)
  4. 从SQL Server 2008服务器备份数据库
  5. 在安装了SQL Serevr 2012的服务器上还原
  6. 将兼容性级别设置为110(SQL Server 2012)

我在执行不必要的步骤吗?我是否缺少任何内容(例如运行实用程序来识别不受支持的Transact-SQL的用法)?


您仍然会想要执行诸如更新统计信息之类的操作,但是对于我来说,您的过程似乎是正确的。
亚伦·伯特兰

不必是2008 / R2 – 2012年将支持
2005。– OMG Ponies

Answers:


5

不,据我所见,您什么都没错过。我已将我的数据库之一从SQL Server 2000升级到SQL Server 2012。

另一种方法是升级整个服务器–在这种情况下,您可以使用升级向导。

更新:我的升级过程成功完成,但请注意SQL Server 2008和2012中已停产和不推荐使用的功能。


有没有一种自动的方法来识别那些已停用和折旧的功能?
自动

对于2000-> 2008,这种方式是使用升级向导。在您的SQL Server 2000中,您应该运行SQL Server 2008安装程序,然后选择“计划”->“安装升级助手”。安装后,尝试运行它。但是我没有尝试在Windows 2000上执行此操作,也许此方法无效。
Alex_L 2012年

1
你不能直接升级从2000年到2012年,您需要首先升级到2005/2008/2008 R2,更新数据库,以90或100的兼容级别,然后再升级到2012
阿龙贝特朗

@AaronBertrand是否必须更改升级过程的兼容性级别?
StanleyJohns 2012年

2
是,因为SQL Server 2012不支持80(2000)兼容性。您不必一直将其更改为110,但是如果您有充分的理由,则只能将其更改为90或100 ...
Aaron Bertrand

1

例如,请注意包含博客文章的列。

textntextimage在SQL Server 2000中频繁使用的数据类型,是在SQL Server 2012中不赞成使用(虽然他们仍然可用),并且应替换varchar(max)nvarchar(max)varbinary(max)分别数据类型。


1

这是一个快速查询,以查看您的表是否正在使用不赞成使用的数据类型。

SELECT  sys.objects.NAME AS [table_name] ,
        sys.columns.NAME AS [column_name] ,
        sys.types.NAME AS [data_type]
FROM    ( sys.columns
          INNER JOIN sys.objects ON sys.objects.object_id = sys.columns.object_id
        ) INNER JOIN sys.types ON sys.types.system_type_id = sys.columns.system_type_id
WHERE   sys.types.name IN ( 'text', 'ntext', 'image' )
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.