微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.jb51.cc/mssql/77704.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐