1. 我的電腦--控制面板--管理工具--服務(wù)--右鍵 MSSQLSERVER--屬性--登陸--登陸身份--選擇"本地系統(tǒng)帳戶" 或: 2. 我的電腦--控制面板--管理工具--服務(wù)--右鍵 MSSQLSERVER--屬性--登陸--登陸身份--選擇"此帳戶"--密碼和確認(rèn)密碼中輸入你修改
10年積累的網(wǎng)站設(shè)計(jì)制作、網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有清遠(yuǎn)免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
是區(qū)分大小寫的
在SQLServer中區(qū)分大小寫的幾種方法
今天碰到這個問題了,問了一下朋友,給出了以下幾種解決方法,貼出來大家都看一下:
第一種:
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
第二種:
--創(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
第三種:
SQL Server 數(shù)據(jù)庫中的文本信息可以用大寫字母、小寫字母或二者的組合進(jìn)行存儲。例如,姓氏可以"SMITH"、"Smith"或"smith"等形式出現(xiàn)。
數(shù)據(jù)庫是否區(qū)分大小寫取決于 SQL Server 的安裝方式。如果數(shù)據(jù)庫區(qū)分大小寫,當(dāng)搜索文本數(shù)據(jù)時,必須用正確的大小寫字母組合構(gòu)造搜索條件。例如,如果搜索名字"Smith",則不能使用搜索條件"=smith"或"=SMITH"。
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 INTEGERASBEGINDECLARE @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=1DECLARE @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)BEGINIF (ASCII(SUBSTRING(@Str1,@i+1,1))=ASCII(SUBSTRING(@Str2,@i+1,1))) --THEN SET @i = @i +1ELSEBEGINSET @y=0BREAKENDENDRETURN @yEND測試:select *from Table1 Where dbo.StrComp(Field1,'aAbB') =1 第三種:(Oliver) SQL Server 數(shù)據(jù)庫中的文本信息可以用大寫字母、小寫字母或二者的組合進(jìn)行存儲。例如,姓氏可以"SMITH"、"Smith"或"smith"等形式出現(xiàn)。數(shù)據(jù)庫是否區(qū)分大小寫取決于 SQL Server 的安裝方式。如果數(shù)據(jù)庫區(qū)分大小寫,當(dāng)搜索文本數(shù)據(jù)時,必須用正確的大小寫字母組合構(gòu)造搜索條件。例如,如果搜索名字"Smith",則不能使用搜索條件"=smith"或"=SMITH"。另外,如果服務(wù)器被安裝成區(qū)分大小寫,則必須用正確的大小寫字母組合提供數(shù)據(jù)庫、所有者、表和列的名稱。如果提供的名稱大小寫不匹配,則 SQL Server 返回錯誤,報告"無效的對象名"。當(dāng)使用關(guān)系圖窗格和網(wǎng)格窗格創(chuàng)建查詢時,查詢設(shè)計(jì)器始終正確地反映出服務(wù)器是否區(qū)分大小寫。但是,如果在 SQL 窗格中輸入查詢,則必須注意使名稱與服務(wù)器解釋名稱的方式相匹配。如果服務(wù)器是用不區(qū)分大小寫的選項(xiàng)安裝的,則 提示 若要確定服務(wù)器是否區(qū)分大小寫,請執(zhí)行存儲過程 sp_server_info,然后檢查第 18 行的內(nèi)容。如果服務(wù)器是用不區(qū)分大小寫的設(shè)置安裝的,則 sort_order 選項(xiàng)將設(shè)置為"不區(qū)分大小寫"??梢詮牟樵兎治銎鬟\(yùn)行存儲過程。 第四種:(非云)
字符串都是區(qū)分大小寫的,都是用upper(字符串)轉(zhuǎn)大寫
lower(字符串)轉(zhuǎn)小寫
轉(zhuǎn)換的方式有很多種,但是最主要的是你需要制定轉(zhuǎn)換的規(guī)則。
比如什么值轉(zhuǎn)換成A,什么值轉(zhuǎn)換成B。這個需要一定的規(guī)則,要不然程序是無法知道一個數(shù)值要轉(zhuǎn)換成什么字母的。
你可以在sql文里做轉(zhuǎn)換,比如oracle的
decode函數(shù)
,以及
sqlserver
的iif函數(shù),只不過這個比較適用于較少
數(shù)據(jù)項(xiàng)
的轉(zhuǎn)換,你這種情況不太適合用這兩個函數(shù)進(jìn)行轉(zhuǎn)換。
你也可以在數(shù)據(jù)庫里做一張配置表,把數(shù)值跟字母對應(yīng)起來,這樣查詢的時候,根據(jù)no值和配置表做一個對應(yīng),這樣查詢出來的結(jié)果就是轉(zhuǎn)換后的字母了。
你也可以用xml或者其他文件做一個
配置文件
,把no值作為key,把字母當(dāng)成value。程序加載時,把它讀到
hashtable
里邊去,hashtable是k-v方式存儲數(shù)據(jù)的,因此轉(zhuǎn)換的時候,你只要把no值當(dāng)成key傳到hashtable里邊去就能獲取到響應(yīng)的字母了。
Private
Sub
Button1_Click(ByVal
sender
As
System.Object,
ByVal
e
As
System.
EventArgs
)
Handles
Button1.Click
hashtable.Add(1001,
"A")
hashtable.Add(1002,
"B")
hashtable.Add(1003,
"C")
hashtable.Add(1004,
"D")
MessageBox
.Show(Exchange(1001))
End
Sub
Public
Function
Exchange(ByVal
source
As
Integer)
As
String
Return
hashtable.Item(source).ToString
End
Function
總之,最主要的是制定一個轉(zhuǎn)換規(guī)則。