第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

SQL Server檢查是否區(qū)分大小寫(xiě)?

SQL Server檢查是否區(qū)分大小寫(xiě)?

MYYA 2019-11-14 14:10:41
如何檢查SQL Server中的數(shù)據(jù)庫(kù)是否區(qū)分大小寫(xiě)?我以前一直在運(yùn)行查詢(xún):SELECT CASE WHEN 'A' = 'a' THEN 'NOT CASE SENSITIVE' ELSE 'CASE SENSITIVE' END但是我正在尋找其他方式,因?yàn)檫@實(shí)際上在過(guò)去給了我很多問(wèn)題。編輯-更多信息:現(xiàn)有產(chǎn)品具有許多預(yù)寫(xiě)的存儲(chǔ)過(guò)程。在存儲(chǔ)過(guò)程中,@test != @TEST取決于服務(wù)器本身的敏感性。因此,我正在尋找的是檢查服務(wù)器靈敏度的最佳方法。
查看完整描述

3 回答

?
隔江千里

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊

可以在各種級(jí)別上設(shè)置排序規(guī)則:


服務(wù)器

數(shù)據(jù)庫(kù)

因此,您可以在不區(qū)分大小寫(xiě)的數(shù)據(jù)庫(kù)中包含一個(gè)區(qū)分大小寫(xiě)的列。我還沒(méi)有遇到過(guò)可以針對(duì)單個(gè)數(shù)據(jù)列的大小寫(xiě)敏感性進(jìn)行業(yè)務(wù)案例研究的情況,但我想可能會(huì)這樣。


檢查服務(wù)器排序規(guī)則


SELECT SERVERPROPERTY('COLLATION')

檢查數(shù)據(jù)庫(kù)整理


SELECT DATABASEPROPERTYEX('AdventureWorks', 'Collation') SQLCollation;

檢查列排序規(guī)則


select table_name, column_name, collation_name

from INFORMATION_SCHEMA.COLUMNS

where table_name = @table_name


查看完整回答
反對(duì) 回復(fù) 2019-11-14
?
慕仙森

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊

如果使用默認(rèn)排序規(guī)則選項(xiàng)安裝了SQL Server,則可能會(huì)發(fā)現(xiàn)以下查詢(xún)返回相同的結(jié)果:


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' 

您可以通過(guò)在列級(jí)別強(qiáng)制排序規(guī)則來(lái)更改查詢(xún):


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' 


-- if myColumn has an index, you will likely benefit by adding 

-- AND myColumn = 'case' 


SELECT DATABASEPROPERTYEX('<database name>', 'Collation') 

由于更改此設(shè)置會(huì)影響應(yīng)用程序和SQL查詢(xún),因此我將首先隔離此測(cè)試。從SQL Server 2000,您可以輕松地運(yùn)行ALTER TABLE語(yǔ)句來(lái)更改特定列的排序順序,從而使其必須區(qū)分大小寫(xiě)。首先,執(zhí)行以下查詢(xún)以確定將其更改回的內(nèi)容:


EXEC sp_help 'mytable' 

在默認(rèn)情況下,第二個(gè)記錄集應(yīng)包含以下信息:


Column_Name排序規(guī)則


mycolumn SQL_Latin1_General_CP1_CI_AS


無(wú)論“歸類(lèi)”列返回什么,現(xiàn)在您都知道在進(jìn)行以下更改后需要將其更改回什么,這將強(qiáng)制區(qū)分大小寫(xiě):


ALTER TABLE mytable 

    ALTER COLUMN mycolumn VARCHAR(10) 

    COLLATE Latin1_General_CS_AS 

GO 




SELECT mycolumn FROM mytable WHERE mycolumn='Case' 

SELECT mycolumn FROM mytable WHERE mycolumn='caSE' 

SELECT mycolumn FROM mytable WHERE mycolumn='case' 

如果這使事情變?cè)?,則只需發(fā)出新的ALTER TABLE語(yǔ)句即可將其改回(確保將我的COLLATE標(biāo)識(shí)符替換為之前找到的標(biāo)識(shí)符):


ALTER TABLE mytable 

    ALTER COLUMN mycolumn VARCHAR(10) 

    COLLATE SQL_Latin1_General_CP1_CI_AS 

如果您對(duì)SQL Server 7.0感到困惑,則可以嘗試以下解決方法,這可能會(huì)對(duì)性能造成一些影響(您應(yīng)該只為FIRST匹配項(xiàng)獲得結(jié)果):


SELECT mycolumn FROM mytable WHERE 

    mycolumn = 'case' AND 

    CAST(mycolumn AS VARBINARY(10)) = CAST('Case' AS VARBINARY(10)) 


SELECT mycolumn FROM mytable WHERE 

    mycolumn = 'case' AND 

    CAST(mycolumn AS VARBINARY(10)) = CAST('caSE' AS VARBINARY(10)) 


SELECT mycolumn FROM mytable WHERE 

    mycolumn = 'case' AND 

    CAST(mycolumn AS VARBINARY(10)) = CAST('case' AS VARBINARY(10)) 


-- if myColumn has an index, you will likely benefit by adding 

-- AND myColumn = 'case' 


查看完整回答
反對(duì) 回復(fù) 2019-11-14
?
揚(yáng)帆大魚(yú)

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊

SQL服務(wù)器確定由大小寫(xiě)COLLATION。


COLLATION 可以在不同的級(jí)別設(shè)置。


服務(wù)器級(jí)

數(shù)據(jù)庫(kù)級(jí)

列級(jí)

表達(dá)水平

這里是MSDN參考。


可以COLLATION按Raj More's答案中提到的在每個(gè)級(jí)別檢查。


檢查服務(wù)器排序規(guī)則


SELECT SERVERPROPERTY('COLLATION')

檢查數(shù)據(jù)庫(kù)整理


SELECT DATABASEPROPERTYEX('AdventureWorks', 'Collation') SQLCollation;

檢查列排序規(guī)則


select table_name, column_name, collation_name

from INFORMATION_SCHEMA.COLUMNS

where table_name = @table_name

檢查表達(dá)式排序規(guī)則


對(duì)于表達(dá)式級(jí)別,COLLATION您需要查看表達(dá)式。:)


如下面的示例所示,它通常位于表達(dá)式的末尾。


SELECT name FROM customer ORDER BY name COLLATE Latin1_General_CS_AI;

歸類(lèi)說(shuō)明


為了獲得每個(gè)COLLATION值的描述,請(qǐng)嘗試此。


SELECT * FROM fn_helpcollations()

而且您應(yīng)該看到類(lèi)似這樣的內(nèi)容。


您總是可以放一個(gè)WHERE子句進(jìn)行過(guò)濾,并且只為您查看描述COLLATION。


您可以在此處找到歸類(lèi)列表。


查看完整回答
反對(duì) 回復(fù) 2019-11-14
  • 3 回答
  • 0 關(guān)注
  • 808 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)