我以前的库排序是二进制的,版本是SQL 2000 区分大小写 ,我做了BAK文件, 恢复到SQL SERVER 2008 R2 我发现居然还是二进制的,查询数据,依然是区分大小写的,那么我如何转换成 不区分大小写呢,谢谢.
------解决方案--------------------
USE 你的数据库
GO
ALTER DATABASE 你的数据库 COLLATE Chinese_PRC_BIN
GO
--返回0,说明
select case when 'aa' = 'AA' then 1 else 0 end
/*
0
*/
--通过制定排序规则collate Chinese_PRC_CI_AS,也就是不区分大小写
--返回1,说明
select case when 'aa' collate Chinese_PRC_CI_AS = 'AA' collate Chinese_PRC_CI_AS
then 1
else 0
end
/*
1
*/
------解决方案--------------------
如果你希望,整个数据库都要不区分大小写,而不只是某个语句不区分大小的话,那么需要修改数据库的排序规则:
ALTER DATABASE 你的数据库 COLLATE Chinese_PRC_CI_AS
GO
------解决方案--------------------
默认就不区分,除非你安装的时候额外指定了
------解决方案--------------------
试试下面的命令,不过不要在系统运行繁忙的时候使用:
alter database 数据库
set single_user
with rollback immediate
go
ALTER DATABASE 数据库 COLLATE Chinese_PRC_CI_AS
GO
alter database 数据库
set multi_user
------解决方案--------------------
1、关闭sql agent
2、重启服务器
3、执行:
use master
go
alter database 数据库
set single_user
with rollback immediate
go
ALTER DATABASE 数据库 COLLATE Chinese_PRC_CI_AS
GO
alter database 数据库
set multi_user
------解决方案--------------------
1、关闭sql agent
2、重启服务器
3、执行:
use master
go
alter database 数据库
set single_user
with rollback immediate
go
ALTER DATABASE 数据库 COLLATE Chinese_PRC_CI_AS
GO
alter database 数据库
set multi_user
试试这个
------解决方案--------------------
因为sql agent有可能会在启动的时候占了一个连接,导致切换单用户无效。