加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 06:48:25 所属栏目:MsSql教程 来源:网络整理
导读:我刚刚安装了SQL Server 2008并导入了AdventureWorks Database(对于SQL 2005,与2008年一样没有用). 现在,当我搜索任何表,视图等时,它会强制区分大小写 因此,写入时的Person.contact表会抛出无效列名的错误,但是当写入Person.Contact时,它会显示所有行. 此外,i
我刚刚安装了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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读