sqlserver排序規則
㈠ sql Server的排序規則在什麼時候能夠進行設置或修改
SQL
Server的默認排序規則只能在安裝SQL
Server的時候才能修改,如果只是修改一個庫,除了樓上給出的代碼修改外,還可以自己手動修改,右鍵單擊你需要修改的資料庫,選擇屬性,在彈出的對話框中選擇選項,選項對話框中有個排序規則的下拉框。一般都是選擇的Chinese_PRC_CI_AS
㈡ sqlserver漢字默認排序是什麼方式
默認排序是:Chinese_PRC_CI_AI_WS
延伸閱讀:
排序規則名稱由兩部份構成,前半部份是指本排序規則所支持的字元集。如:
Chinese_PRC_CS_AI_WS
前半部份:指UNICODE字元集,Chinese_PRC_指針對大陸簡體字UNICODE的排序規則。
排序規則的後半部份即後綴 含義:
_BIN 二進制排序
_CI(CS) 是否區分大小寫,CI不區分,CS區分
_AI(AS) 是否區分重音,AI不區分,AS區分
_KI(KS) 是否區分假名類型,KI不區分,KS區分
_WI(WS) 是否區分寬度 WI不區分,WS區分
㈢ sqlserver排序規則的問題
如何區分大小寫、全形半形(SQL2000測試通過):
/*
用定義排序規則(Chinese_PRC_CS_AS_WS、Chinese_PRC_BIN)來區分,
介紹兩種排序規則:
第一個Chinese_PRC所屬區域(中文(香港特別行政區),中文(中華人民共和國),中文(新加坡))
CS(CaseSensitivity縮寫):CS 指定區分大小寫,CI 指定不區分大小寫。
AS(AccentSensitivity縮寫):AS 指定區分重音,AI 指定不區分重音。
WS(WidthSensitivity縮寫):WS 指定區分大小寫,Omitted 指定不區分大小寫。(區分全形半形)
BIN:指定使用二進制排序次序。
KanatypeSensitive:KS 指定區分假名類型,Omitted 指定不區分大小寫。
_BIN 二進制排序
_CI_AI 不區分大小寫、不區分重音、不區分假名類型、不區分寬度
_CI_AI_WS 不區分大小寫、不區分重音、不區分假名類型、區分寬度
_CI_AI_KS 不區分大小寫、不區分重音、區分假名類型、不區分寬度
_CI_AI_KS_WS 不區分大小寫、不區分重音、區分假名類型、區分寬度
_CI_AS 不區分大小寫、區分重音、不區分假名類型、不區分寬度
_CI_AS_WS 不區分大小寫、區分重音、 不區分假名類型、區分寬度
_CI_AS_KS 不區分大小寫、區分重音、區分假名類型、不區分寬度
_CI_AS_KS_WS 不區分大小寫、區分重音、區分假名類型、區分寬度
_CS_AI 區分大小寫、不區分重音、 不區分假名類型、不區分寬度
_CS_AI_WS 區分大小寫、不區分重音、不區分假名類型、區分寬度
_CS_AI_KS 區分大小寫、不區分重音、區分假名類型、不區分寬度
_CS_AI_KS_WS 區分大小寫、不區分重音、區分假名類型、區分寬度
_CS_AS 區分大小寫、區分重音、不區分假名類型、不區分寬度
_CS_AS_WS 區分大小寫、區分重音、不區分假名類型、區分寬度
_CS_AS_KS 區分大小寫、區分重音、區分假名類型、不區分寬度
_CS_AS_KS_WS 區分大小寫、區分重音、區分假名類型、區分寬度
*/
在我的Blog里有舉用法例子
㈣ SQL server中如何更改排序規則
1、首先新建一個資料庫,如圖為test。
㈤ sqlserver 排序規則的問題
alter table [表名] alter column [列名] [類型] COLLATE Chinese_PRC_CI_AS
[類型] 最好選用 nvarchar,nchar
存儲數據時如果出現亂碼,可能情況如下:
1.提交到資料庫的字元是亂碼
2. 資料庫排序規則不支持該字元集
3.資料庫表欄位的類型設計不合適,最好選用nvarchar,nchar
4.插入字元串時強制存儲格式 insert into [表名] ([欄位1]) values(N'字元串'),最好在字元串前指定 N
㈥ sqlserver排序問題
1、查詢SQL中的所有表: Select TABLE_NAME FROM 資料庫名稱.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE' 執行之後,就可以看到資料庫中所有屬於自己建的表的名稱 2、查詢SQL中所有表及列: Select dbo.sysobjects.name as Table_name, dbo.syscolumns.name AS Column_name FROM dbo.syscolumns INNER JOIN dbo.sysobjects ON dbo.syscolumns.id = dbo.sysobjects.id Where (dbo.sysobjects.xtype = 'u') AND (NOT (dbo.sysobjects.name LIKE 'dtproperties')) 3、在Sql查詢分析器,還有一個簡單的查詢方法: EXEC sp_MSforeachtable @command1="sp_spaceused '?'" 執行完之後,就可以看到資料庫中所有用戶表的信息 4、查詢總存儲過程數:select count(*) 總存儲過程數 from sysobjects where xtype='p' 附:xtype類型D = 默認值或 DEFAULT 約束
F = FOREIGN KEY 約束L = 日誌FN = 標量函數
IF = 內嵌表函數
P = 存儲過程
PK = PRIMARY KEY 約束(類型是 K)
RF = 復制篩選存儲過程S = 系統表TF = 表函數
TR = 觸發器U = 用戶表UQ = UNIQUE 約束(類型是 K)V = 視圖X = 擴展存儲過程 另:在sqlserver中取得某個資料庫中所有表名的sql語句 select sysobjects.name from sysobjects.xtype ='U';SELECT name
WHERE (xtype = 'U') 在資料庫的sysobjects表裡有這個資料庫全部表的信息, xtype值為'U'的就是表名 注意:一般通過上述方法獲得全部用戶表示都會有一個dtproperties表,SQLSERVER 默認它也是用戶表,想要從用戶表中排出,需要加上限定條件 status>0,即:select * from sysobjects where xtype='U' and status>0
㈦ 怎樣知道SQLServer的排序規則
語句:
select
SERVERPROPERTY('Collation')
--查看默認排序規則
select
SERVERPROPERTY('SqlCharSetName')--查看排序使用字元集名稱
至於sqlserver的字元集個人認為就是windows的字元集。
排序規則還可以通過SSMS中右鍵查看資料庫屬性里的『維護'。
㈧ sqlserver 漢字默認排序是什麼方式
默認排序是:Chinese_PRC_CI_AI_WS
延伸閱讀:
排序規則名稱由兩部份構成,前半部份是指本排序規則所支持的字元集。如:
Chinese_PRC_CS_AI_WS
前半部份:指UNICODE字元集,Chinese_PRC_指針對大陸簡體字UNICODE的排序規則。
排序規則的後半部份即後綴 含義:
_BIN 二進制排序
_CI(CS) 是否區分大小寫,CI不區分,CS區分
_AI(AS) 是否區分重音,AI不區分,AS區分
_KI(KS) 是否區分假名類型,KI不區分,KS區分
_WI(WS) 是否區分寬度 WI不區分,WS區分
㈨ SQLserver排序問題,欄位中含有字母、數字、漢字,如何只按數字排序
如果數字都是小於10的,可以直接order by,按照字元規則排序就是你想要的這個。
如果數字有兩位以上的,這時候11會排在2的前面,如果想數字按照數字的規則排序,字母按照字母的規則排序,需要根據條件將數字和字母分別查詢出來進行排序,然後使用union all聯接出結果。
㈩ sqlserver排序
排序可以是升序的
(ASC),也可以是降序的
(DESC)。如果未指定是升序還是降序,就假定為
ASC。
下面的查詢返回按
ProctID
升序排序的結果:
代碼如下
復制代碼
USE
AdventureWorks2008R2;
GO
SELECT
ProctID,
ProctLine,
ProctModelID
FROM
Proction.Proct
ORDER
BY
ProctID;
如果
ORDER
BY
子句中指定了多個列,則排序是嵌套的。下面的語句先按產品子類別降序排序
Proction.Proct
表中的行,然後在每個產品子類別中按
ListPrice
升序排序這些行。
代碼如下
復制代碼
USE
AdventureWorks2008R2;
GO
SELECT
ProctID,
ProctSubcategoryID,
ListPrice
FROM
Proction.Proct
ORDER
BY
ProctSubcategoryID
DESC,
ListPrice;
問題
同一...排序可以是升序的
(ASC),也可以是降序的
(DESC)。如果未指定是升序還是降序,就假定為
ASC。
下面的查詢返回按
ProctID
升序排序的結果:
代碼如下
復制代碼
USE
AdventureWorks2008R2;
GO
SELECT
ProctID,
ProctLine,
ProctModelID
FROM
Proction.Proct
ORDER
BY
ProctID;
如果
ORDER
BY
子句中指定了多個列,則排序是嵌套的。下面的語句先按產品子類別降序排序
Proction.Proct
表中的行,然後在每個產品子類別中按
ListPrice
升序排序這些行。
代碼如下
復制代碼
USE
AdventureWorks2008R2;
GO
SELECT
ProctID,
ProctSubcategoryID,
ListPrice
FROM
Proction.Proct
ORDER
BY
ProctSubcategoryID
DESC,
ListPrice;
問題
同一個查詢的結果集為什麽有時候是按他想要的順序排列,有時候又不是,或者是在SQL2000里是這個順序,到了SQL2005/2008又是那個順序?
其實,只要語句里沒有指定「order
by」,SQLSERVER並不會按照順序返回的。有可能你的表裡有一個欄位已經建立了索引
你想結果集按照那個建立了索引的欄位排序,那麼你不指定「order
by」是沒有問題的,因為表的存儲順序就是按照那個欄位
的順序排好序了,所以可以不指定「order
by」,但是如果你沒有在想排序的那個欄位建立索引,或者在SQL2000里建立了
索引,而在SQL2005/2008里沒有建立索引,那麼就要明確地用「order
by」指定。如果你沒有指定,哪怕一模一樣的查詢,
結果集順序這一次和上一次不一樣是很正常的。