sql-server – 如何删除SQL Server 2008中的区分大小写检查?

我刚刚安装了sql Server 2008并导入了AdventureWorks Database(对于sql 2005,与2008年一样没有用).

现在,当我搜索任何表,视图等时,它会强制区分大小写
因此,写入时的Person.contact表会抛出无效列名的错误,但是当写入Person.Contact时,它会显示所有行.

此外,intellisense也不是很好.

解决方法

区分大小写由数据库使用的排序规则控制 – 通过查询系统目录视图来检查:
select name,collation_name 
from sys.databases

排序规则名称类似于:latin1_General_CI_AS

_CI_部分告诉我这是一个不区分大小写的排序规则.如果您看到_CS_,那么它是区分大小写的排序规则.

您可以使用以下命令更改数据库认排序规则:

ALTER DATABASE AdventureWorks COLLATE .......

并在此处选择任何有效的排序规则 – 使用带有_CI_的排序规则来获取不区分大小写的排序规则.

麻烦在于:即使您更改了数据库级别的排序规则,某些表仍可能具有在创建表时定义了特定排序规则的单个列.你也可以改变所有这些,但这将是一项更大的任务.有关详细信息,请参阅this article以及要检查并可能更改表中各列的脚本.

智能感知可能无法正常工作的原因是数据库对象本身的区分大小写由服务器排序规则控制 – 这可能再次与任何数据库认值不同.

要了解服务器的排序规则,请使用:

SELECT SERVERPROPERTY('Collation')

更改服务器的系统排序规则是一个非常混乱的过程,需要您使用原始setup.exe作为explained here.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...