最近的一次对mssql数据库迁移操作中发现一个有趣的事情,可以用一条语句判断MSSQL数据库版本(准确度不高):
select * from sys.servers
如果返回如下信息,应该是2000数据库:
消息 208,级别 16,状态 1,第 1 行
对象名 'sys.servers' 无效。
反之返回类似如下的信息,则可能为2005数据库
1 www-host SQL Server SQLNCLI www-host NULL NULL NULL 0
原因:sys.servers这个对象在2000中没有,在2005中有。
问题:点击“SQL Server Configuration Manager”却显示“无法连接到WMI 提供程序 请注意,你只能使用SQL Server 配置管理器来管理SQL Server 2005服务器。找不到指定的模块。[0x8007007e]”
解决方法:
1、到system32目录下wbem目录中拷贝framedyn.dll文件到system32目录下
2、如果经过1的操作还不可以,请在命令行下执行以下语句:
- cd /d C:\Program Files\Microsoft SQL Server\90\Shared
- mofcomp "C:\Program Files\Microsoft SQL Server\90\Shared\sqlmgmproviderxpsp2up.mof"
步骤2会返回如下信息:
Microsoft (R) 32-bit MOF 汇编器版本 5.1.2600.2180
版权所有 (C) Microsoft Corp. 1997-2001。保留所有权利。
正在分析 MOF 文件: C:\Program Files\Microsoft SQL Server\90\Shared\sqlmgmprovide
rxpsp2up.mof
MOF 文件分析成功
将数据储存到储存库中...
完毕!
经过步骤2,我已可以成功运行了配置工具进行配置操作,你不妨试试看。