SQL区分大小写

唐诗三百首 2011-08-22 10:43:10
MSSQL里, 默认'abc'跟'ABC'是相等的,
哪个语句级的开关可以区分开来? (不要修改数据库级的设置)
...全文
261 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
meilanhaohe 2011-08-24
  • 打赏
  • 举报
回复
学习学习了
--小F-- 2011-08-22
  • 打赏
  • 举报
回复
围观大牛耍我们
chuanzhang5687 2011-08-22
  • 打赏
  • 举报
回复
路过学习!
快溜 2011-08-22
  • 打赏
  • 举报
回复
collate Chinese_PRC_CI_AI
mingpei0703 2011-08-22
  • 打赏
  • 举报
回复

ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CI_AS
--不区分大小写
ALTER TABLE tb
ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CS_AS
--区分大小写
AcHerat 2011-08-22
  • 打赏
  • 举报
回复
CaseSensitivity  _CI(CS)  区分大小写  CI不区分,CS区分
AccentSensitivity _AI(AS) 区分重音的 AI不区分,AS区分

_BIN(1)
二进制排序。

_BIN2(1)
二进制-码位排序顺序(SQL Server 2005 的新增功能)。

_CI_AI
不区分大小写、不区分重音、不区分假名、不区分全半角。

_CI_AI_KS
不区分大小写、不区分重音、区分假名、不区分全半角

_CI_AI_KS_WS
不区分大小写、不区分重音、区分假名、区分全半角

_CI_AI_WS
不区分大小写、不区分重音、不区分假名、区分全半角

_CI_AS
不区分大小写、区分重音、不区分假名、不区分全半角

_CI_AS_KS
不区分大小写、区分重音、区分假名、不区分全半角

_CI_AS_KS_WS
不区分大小写、区分重音、区分假名、区分全半角

_CI_AS_WS
不区分大小写、区分重音、不区分假名、区分全半角

_CS_AI
区分大小写、不区分重音、不区分假名、不区分全半角

_CS_AI_KS
区分大小写、不区分重音、区分假名、不区分全半角

_CS_AI_KS_WS
区分大小写、不区分重音、区分假名、区分全半角

_CS_AI_WS
区分大小写、不区分重音、不区分假名、区分全半角

_CS_AS
区分大小写、区分重音、不区分假名、不区分全半角

_CS_AS_KS
区分大小写、区分重音、区分假名、不区分全半角

_CS_AS_KS_WS
区分大小写、区分重音、区分假名、区分全半角

_CS_AS_WS
区分大小写、区分重音、不区分假名、区分全半角

(1)如果选择 BIN 或二进制-码位,则区分大小写、区分重音、区分假名和区分全半角选项均不可用。


COLLATE { <collation_name> | database_default }
<collation_name> :: =
{ Windows_collation_name } | { SQL_collation_name

collation_name
应用于表达式、列定义或数据库定义的排序规则的名称。collation_name 可以只是指定的 Windows_collation_name 或 SQL_collation_name 。collation_name 必须是文字值。 collation_name 不能用变量或表达式表示。
Windows_collation_name 是用于 Windows 排序规则 名称的排序规则名称。
SQL_collation_name 是用于 SQL 排序规则 名称的排序规则名称。
shshjun 2011-08-22
  • 打赏
  • 举报
回复
参考 http://sqlserver2000.databases.aspfaq.com/how-can-i-make-my-sql-queries-case-sensitive.html


CREATE TABLE mytable
(
mycolumn VARCHAR(10)
)
GO

SET NOCOUNT ON

INSERT mytable VALUES('Case')
GO

SELECT mycolumn FROM mytable WHERE mycolumn='Case'
SELECT mycolumn FROM mytable WHERE mycolumn='caSE'
SELECT mycolumn FROM mytable WHERE mycolumn='case'
GO

SELECT myColumn FROM myTable
WHERE myColumn COLLATE Latin1_General_CS_AS = 'caSE'

SELECT myColumn FROM myTable
WHERE myColumn COLLATE Latin1_General_CS_AS = 'case'

SELECT myColumn FROM myTable
WHERE myColumn COLLATE Latin1_General_CS_AS = 'Case'

geniuswjt 2011-08-22
  • 打赏
  • 举报
回复
围观大牛,接分
zd302599940 2011-08-22
  • 打赏
  • 举报
回复
长了点见识,原来可以使用区分大小写的……呵呵

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧