Server: Msg 1816, Level 16, State 1, Line 1 Could not attach the database because the character set, sort order, or Unicode collation for the database differs from this
server. Server: Msg 1816, Level 16, State 1, Line 1 Could not attach the database because the character set, sort order, or Unicode collation for the database differs from this
server. Warning: sort order 199 in database differs from server sort order of 52. Warning: Unicode language locale 2052 in database differs from server Unicode language locale of 1033. Warning: sort order 199 in database differs from server sort order of 52. Warning: Unicode language locale 2052 in database differs from server Unicode language locale of 1033.
错误提示已经很清晰了,是排序规则造成的
sql7.0实例只支持一种排序规则,不支持同一实例下不同数据库有不同的排序规则
而你要附加的数据库的排序规则是:
199: Chinese_PRC_CI_AS
当前安装的sql7实例的排序规则是:
52: SQL_Latin1_General_Cp1_CI_AS
两者不同,所以不能附加,解决的方法是重新安装sql7,安装时使用自定义安装,并且设置与数据库相同的排序规则即可
另一种方法:
新建一同名数据库(文件名,文件组都和原来的一样),然后停止数据库服务,用原来文件替换新建的数据库文件,启动数据库,该数据库被设为suspect
然后把数据库改成紧急模式:
sp_configure 'allow', 1
reconfigure with override
update sysdatabases set status = 32768 where name = '数据库名'
把LDF文件改名,再执行
DBCC REBUILD_LOG ('数据库名', 'E:\fdzz\database\fdzz1204_Log.LDF' )
恢复数据库紧急模式
update sysdatabases set status = 0 where name = '数据库名'
执行
restore database 数据库名 WITH RECOVERY
sp_configure 'allow', 0
reconfigure with override
然后用DBCC CHECKDB ('数据库名')看看有没有错误
表1:英文版SQLServer7.0安装过程中有关:字符集/排序次序等选项的信息显示
选项
安装英文SQLServer
安装中文SQLServer
Character Set
1252/ISO Character Set(Default)
936 Chinese(simplified)
Sort Order
Dictionary order, case-insensitive
Dictionary order,case-insensitive(NT-provided)
Unicode Collation
General Unicode;
Case-insensitive;
Width-insensitive;
Kana-insensitive
Chinese Punctuation;
Case-insensitive;
Width-insensitive;
Kana-insensitive