今天碰到這個問題了,問了一下朋友,給出了以下幾種解決方法,貼出來大家都看一下: 第一種:(蟋蟀) ALTER TABLE tb ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CI_AS --不區(qū)分大小寫 ALTER TABLE tb ALTER COLUMN colname nvarchar(100) COLLATE C
今天碰到這個問題了,問了一下朋友,給出了以下幾種解決方法,貼出來大家都看一下:
第一種:(蟋蟀)
ALTER TABLE tb
ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CI_AS
--不區(qū)分大小寫
ALTER TABLE tb
ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CS_AS
--區(qū)分大小寫
alter database 數(shù)據(jù)庫 COLLATE Chinese_PRC_CS_AS
第二種:(tree)
--創(chuàng)建如下用戶自定義函數(shù)(UDF)
CREATE FUNCTION StrComp(@Str1 VARCHAR(50),@Str2 VARCHAR(50))
--ALTER FUNCTION StrComp(@Str1 VARCHAR(50),@Str2 VARCHAR(50))
RETURNS INTEGER
AS
BEGIN
DECLARE @i INTEGER
--DECLARE @Str1 VARCHAR(50)
--DECLARE @Str2 VARCHAR(50)
DECLARE @y INT
--SET @Str1='a'
--SET @Str2='A'
SET @i=0
--SELECT ASCII(SUBSTRING(@Str1,@i+1,1))
SET @y=1
DECLARE @iLen INT
SET @iLen = LEN(LTRIM(RTRIM(@Str1)))
IF LEN(LTRIM(RTRIM(@Str1))) < LEN(LTRIM(RTRIM(@Str2))) --THEN
SET @iLen = LEN(LTRIM(RTRIM(@Str2)))
WHILE (@i < @iLen)
BEGIN
IF (ASCII(SUBSTRING(@Str1,@i+1,1))=ASCII(SUBSTRING(@Str2,@i+1,1))) --THEN
SET @i = @i +1
ELSE
BEGIN
SET @y=0
BREAK
END
END
RETURN @y
END
測試:
select *
from Table1
Where dbo.StrComp(Field1,'aAbB') =1
第三種:(Oliver)
SQL Server 數(shù)據(jù)庫中的文本信息可以用大寫字母、小寫字母或二者的組合進行存儲。例如,姓氏可以"SMITH"、"Smith"或"smith"等形式出現(xiàn)。
數(shù)據(jù)庫是否區(qū)分大小寫取決于 SQL Server 的安裝方式。如果數(shù)據(jù)庫區(qū)分大小寫,當搜索文本數(shù)據(jù)時,必須用正確的大小寫字母組合構造搜索條件。例如,如果搜索名字"Smith",則不能使用搜索條件"=smith"或"=SMITH"。
另外,如果服務器被安裝成區(qū)分大小寫,則必須用正確的大小寫字母組合提供數(shù)據(jù)庫、所有者、表和列的名稱。如果提供的名稱大小寫不匹配,則 SQL Server 返回錯誤,報告"無效的對象名"。
當使用關系圖窗格和網格窗格創(chuàng)建查詢時,查詢設計器始終正確地反映出服務器是否區(qū)分大小寫。但是,如果在 SQL 窗格中輸入查詢,則必須注意使名稱與服務器解釋名稱的方式相匹配。
如果服務器是用不區(qū)分大小寫的選項安裝的,則
提示 若要確定服務器是否區(qū)分大小寫,請執(zhí)行存儲過程 sp_server_info,然后檢查第 18 行的內容。如果服務器是用不區(qū)分大小寫的設置安裝的,則 sort_order 選項將設置為"不區(qū)分大小寫"。可以從查詢分析器運行存儲過程。
第四種:(非云)
select * from servers where convert(varbinary, name)=convert(varbinary, N'RoCKEY')
第五種:()
ascii('a')再配合Substring()一起用
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com