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

前端之家收集整理的这篇文章主要介绍了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.

原文链接:https://www.f2er.com/mssql/77704.html

猜你在找的MsSQL相关文章