1. 程式人生 > >SQL Server 設定資料區分大小寫

SQL Server 設定資料區分大小寫

操作資料庫 或 表

從資料庫Collate到儲存過程到函式,各種方法都有,選擇適合你的。

  第一種:

ALTER TABLE tb
ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CI_AS
--不區分大小寫
ALTER TABLE tb
ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CS_AS
--區分大小寫
alter database 資料庫 COLLATE Chinese_PRC_CS_AS 

  第二種:--建立如下使用者自定義函式(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 資料庫中的文字資訊可以用大寫字母、小寫字母或二者的組合進行儲存。例如,姓氏可"SMITH"、"Smith"或"smith"等形式出現。

  資料庫是否區分大小寫取決於 SQL Server 的安裝方式。如果資料庫區分大小寫,當搜尋文字資料時,必須用正確的大小寫字母組合構造搜尋條件。例如,如果搜尋名字"Smith",則不能使用搜索條件"=smith"或"=SMITH"。

  另外,如果伺服器被安裝成區分大小寫,則必須用正確的大小寫字母組合提供資料庫、所有者、表和列的名稱。如果提供的名稱大小寫不匹配,則 SQL Server 返回錯誤,報告"無效的物件名"。

  當使用關係圖窗格和網格窗格建立查詢時,查詢設計器始終正確地反映出伺服器是否區分大小寫。但是,如果在 SQL 窗格中輸入查詢,則必須注意使名稱與伺服器解釋名稱的方式相匹配。

  如果伺服器是用不區分大小寫的選項安裝的,則提示若要確定伺服器是否區分大小寫,請執行儲存過程 sp_server_info,然後檢查第18 行的內容。如果伺服器是用不區分大小寫的設定安裝的,則 sort_order 選項將設定為"不區分大小寫"。可以從查詢分析器執行儲存過程。

  第四種:

select * from servers where convert(varbinary, name)=convert(varbinary, N'RoCKEY')

  第五種:

  如ascii('a')再配合Substring()一起用。

相關推薦

SQL Server 設定資料區分大小寫

操作資料庫 或 表 從資料庫Collate到儲存過程到函式,各種方法都有,選擇適合你的。   第一種: ALTER TABLE tb ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CI_AS --不區

SQL SERVER 設定區別大小寫

表格中欄位設定大小寫: --查詢時修改 select * from info where name collate Chinese_PRC_CS_AS_WS = 'lily'; --或者修改表對大小寫敏感 --alter table info alter column name char(10) c

SQL Server BCP 資料導入導出

nag 視圖 之間 lac _id 控制 參數 har tle SQL Server BCP 導入導出使用 Bcp 導出導入數據高效,比使用SQL Server Management Stdio 提供的數據庫導出導入要高效因為sql server 也沒有提供提供類似

SQL server 匯出資料之後身份證後四位全變成0的問題

負責一個專案的時候經常會遇到匯出資料的問題,而且每次匯出的欄位都不一樣,於是總結出了一個很方便的辦法,並且匯出來的資料不會變成科學計數,身份證後四位也不會全變成0,下面是步驟: 第一步:開啟SQL server,用select語句把需要匯出的資料查詢出來。 第二步:查詢所

Sql Server資料庫資料恢復成功案例

故障描述: 5塊2T硬碟組建RAID5,劃分LUN供windows伺服器使用。在windows伺服器內裝有Sql Server2008資料庫。儲存空間內共有三個邏輯分割槽,大小分別為500G、800G、2.3T。資料庫檔案丟失,主要涉及五個資料庫,表個數約為6000個左右。丟失原因未知,且不能確

sql server 還原資料

1 有兩個 sql server資料庫的備份,分別是gdda45.bak, auth1023.bak  首先, 使用windows登入認證的方式登入' '. 右鍵資料庫,還原,然後選擇備份檔案,注意目標資料庫的名稱與備份的資料庫名稱一致

SQL Server插入資料和刪除資料

首先在我的Student表中插入幾條資料,由於我的表已經建立完成了,所以就沒有建立表的 sql 語句了,不過可以看我的上一篇文章: http://www.cnblogs.com/Brambling/p/6649350.html 插入資料sql語句: 1  insert into Student(S

SQL server匯入資料格式為科學

問題描述:Excel匯入資料庫的時候,有一列資料是九位數字 如72020693 匯入以後預設為float型別 我要把它改成nvarchar型別,直接修改了以後,他就會變成7202+e07的形式 (因為已經改好了沒有具體的例子) 後來我就把這列(欄位名為CostC

SQL Server資料查詢注意事項

1.查詢語句不用區分大小寫,而且即使每張表的表名或者列名出現大寫字母,在寫查詢語句的時候也不用區分大小寫,查詢結果保持一致,所以查詢語句小寫即可。 2.在寫查詢語句的時候列名不需要帶單引號,數值型的字串不用帶引號,需要帶引號的是字元型和漢字型的字串。 3.如果既要用到group by子句,也要用到orde

sql server 大批資料插入時,時間過長的問題

private const string con = "server=192.168.30.36;database=test;user=sa;pwd=123456"; static void Main(string[] args) { DataT

sql server 資料庫 資料字典指令碼

use YourDatabase  --指定要生成資料字典的資料庫 go SELECT   表名=case when a.colorder=1 then d.name else '' end,  表說明=case when a.colorder=1 then isnull(

SQL Server——保證資料的完整性(使用者自定義資料型別、使用規則、解除和刪除規則)

目錄   一、使用者自定義資料型別 二、使用規則 規則和CHECK約束的比較: 三、解除和刪除規則 一、使用者自定義資料型別 使用者自己設計並實現的資料型別就是使用者自定義資料型別。舉例:當幾個表中要存同種資料型別時,並且保證他們有相同的資料型別、長度和

sql sever 2014 和 navicat 工具之間 sql server匯出資料 sql檔案 資料傳輸問題

掃盲意識: 用navicat工具,建立sql連結,要安裝mysql; 建立sql server連結,要安裝sql server; 想在sql中匯入sqlserver資料庫,或者反之,請自行gogle; 問題背景: 我在navicat上,建立生sql

SQL Server資料搬遷之檔案組備份還原實戰

一.本文所涉及的內容(Contents) 二.背景(Contexts)   有一個數據庫大概在700G左右,需要從伺服器A搬遷到伺服器B,兩臺伺服器網路傳輸速度可以達到8MB/s,怎麼做才能更快的搬遷並且宕機時間最短呢?   資料庫業務邏輯概述:這個資料庫只會插入資料,每天大概有300W條資料,不會

SQL Server 變更資料捕獲(CDC)

---查詢當前作業配置 SELECT * FROM MSDB.dbo.cdc_jobs --或者使用 USE AdventureWorks2008R2; GO EXEC sys.sp_cdc_help_jobs; GO 1.sys.sp_cdc_add_job 在當前資料庫中建立變更資料捕

SQL Server 變更資料捕獲(CDC)監控表資料

一.本文所涉及的內容(Contents) 二.背景(Contexts)   在SQL Server 2008版本之前,對錶資料庫的變更監控,我們通常使用DML觸發器進行監控,把DML操作中的INSERT/UPDATE/DELETE資料記錄下來,但是觸發器的維護比較困難;   當SQL Server

SQL SERVER 2008資料丟失幾種解決方案

一、事務處理 --資料還原到指定時間點的處理示例 --建立測試資料庫 CREATE DATABASE Db GO --對資料庫進行備份 BACKUP DATABASE Db TO DISK='c:\db.bak' WITH FORMAT GO --建立測試表 CREATE

SQL server資料匯出到檔案方法

這裡使用xp_cmdshell命令。Mark一下。 注:如果操作SQL Server的使用者沒有SP_configure的使用許可權,需要將對應使用者新增"sysadmin"角色。 1、首先啟動該命令,方法如下: SP_CONFIGURE'show advanced op

mysql5.7設定區分大小寫

mysql5.7 以前的版本的修改 sudo  vi /etc/mysql/my.cnf 在[mysql] 下新增一行 lower_case_table_names=1  (如下圖) mysql

SQL SERVER資料型別 [轉]

1.SQL SERVER的資料型別   資料類弄是資料的一種屬性,表示資料所表示資訊的型別。任何一種計算機語言都定義了自己的資料型別。當然,不同的程式語言都具有不同的特點,所定義的資料型別的各類和名稱都或多或少有些不同。SQLServer 提供了 25 種資料型別:  ·Bi