① sql server中如何更改排序規則
1、首先新建一個資料庫,如圖為test。
② oracle資料庫中文怎麼排序規則
ORACLE資料庫中文排序規則
oracle9i之前,中文是按照二進制編碼進行排序的。
在oracle9i中新增了按照拼音、部首、筆畫排序功能。設置NLS_SORT值
SCHINESE_RADICAL_M 按照部首(第一順序)、筆劃(第二順序)排序
SCHINESE_STROKE_M 按照筆劃(第一順序)、部首(第二順序)排序
SCHINESE_PINYIN_M 按照拼音排序,系統的默認排序方式為拼音排序
alter session set nls_sort=』schinese_pinyin_m』;
select * from dept order by nlssort(name,』NLS_SORT=SCHINESE_PINYIN_M』);
③ 如何修改資料庫的伺服器排序規則
您好,很高興為您解答。
1.sp_helpsort
SELECTSERVERPROPERTY('Collation')
查看你的排序規則.
不過你的這個應該和字元集有關.
2.更改伺服器排序規則
更改SQLServer2005實例的默認排序規則的操作可能會比較復雜,包括以下步驟:
確保具有重新創建用戶資料庫及這些資料庫中的所有對象所需的全部信息或腳本。
使用工具(例如大容量復制)導出所有數據。
刪除所有用戶資料庫。
重新生成在setup命令的SQLCOLLATION屬性中指定新的排序規則的master資料庫。例如:
復制代碼
start/waitsetup.exe/qbINSTANCENAME=MSSQLSERVERREINSTALL=SQL_EngineREBUILDDATABASE=1SAPWD=testSQLCOLLATION=SQL_Latin1_General_CP1_CI_AI
有關重新生成master資料庫的詳細信息,請參閱如何重新生成SQLServer2005的Master資料庫。
創建所有資料庫及這些資料庫中的所有對象。
導入所有數據。
注意:
可以為創建的每個新資料庫指定默認排序規則,而不更改SQLServer2005實例的默認排序規則。
3.設置和更改資料庫排序規則
創建新資料庫時,可以使用下列內容之一指定排序規則:
CREATEDATABASE語句的COLLATE子句。
SQLServerManagementStudio.
SQL管理對象(SMO)中的Database.Collation屬性。
如果未指定排序規則,則使用伺服器排序規則。
可以使用ALTERDATABASE語句的COLLATE子句來更改在用戶資料庫中創建的任何新對象的排序規則。使用此語句不能更改任何現有用戶定義的表中列的排序規則。使用ALTERTABLE的COLLATE子句可以更改這些列的排序規則。
更改資料庫排序規則時,需要更改下列內容:
資料庫的默認排序規則,這一新的默認排序規則將應用於資料庫中後續創建的所有列、用戶定義的數據類型、變數和參數。根據資料庫中定義的對象解析SQL語句中指定的對象標識符時,也使用新的默認排序規則。
將系統表中的任何char、varchar、text、nchar、nvarchar或ntext列更改為使用新的排序規則。
將存儲過程和用戶定義函數的所有現有char、varchar、text、nchar、nvarchar或ntext參數和標量返回值更改為使用新的排序規則。
將char、varchar、text、nchar、nvarchar或ntext系統數據類型和基於這些系統數據類型的所有用戶定義的數據類型更改為使用新的默認排序規則。
SQLcode:
1.將資料庫的字元集修改為:
_PRC_CI_AS
2.
--1.為資料庫指定排序規則
_PRC_CI_AS
GO
ALTERDATABASEdbCOLLATEChinese_PRC_BIN
GO
/*====================================*/
--2.為表中的列指定排序規則
CREATETABLEtb(
col1varchar(10),
col2varchar(10)COLLATEChinese_PRC_CI_AS)
GO
ALTERTABLEtbADDcol3varchar(10)COLLATEChinese_PRC_BIN
GO
(10)COLLATEChinese_PRC_BIN
GO
/*====================================*/
--3.為字元變數和參數應用排序規則
DECLARE@avarchar(10),@bvarchar(10)
SELECT@a='a',@b='A'
--使用排序規則Chinese_PRC_CI_AS
SELECTCASEWHEN@aCOLLATEChinese_PRC_CI_AS=@bTHEN'@a=@b'ELSE'@a<>@b'END
--結果:@a=@b
--使用排序規則Chinese_PRC_BIN
SELECTCASEWHEN@aCOLLATEChinese_PRC_BIN=@bTHEN'@a=@b'ELSE'@a<>@b'END
--結果:@a<>@b
3.
表
ALTERTABLEtb
ALTERCOLUMNcolnamenvarchar(100)COLLATEChinese_PRC_CI_AS
--不區分大小寫
ALTERTABLEtb
ALTERCOLUMNcolnamenvarchar(100)COLLATEChinese_PRC_CS_AS
--區分大小寫
資料庫
ALTERDATABASEdatabase
COLLATEChinese_PRC_CS_AS
--區分大小寫
_PRC_CI_AS--不區分大小寫
方法一.安裝SQL時選擇區分大小寫
或安裝完以後重建mastar,選擇區分大小
C: ebuildm.exe
方法二.sqlserver8.0以上的版本才可以,7.0及其以下不支持
alterdatabase資料庫COLLATEChinese_PRC_CS_AS
修改排序規則,改成大小寫敏感的排序規則
如果只修改一個表,用altertable語句
如果修改一個庫的默認排序規則,用alterdatebase語句
如果修改整個伺服器的默認排序規則,用Rebuildm.exe重建master庫
--指定排序規則就可以了
--示例
selectreplace('AbacB'collateChinese_PRC_CS_AS_WS,'B','test')
--如果你是要求表支持,則可以建表時指定排序規則,這樣replace就不用寫排序規則了
--示例
createtabletb(avarchar(20)collateChinese_PRC_CS_AS_WS)
inserttbvalues('Abac')
selectreplace(a,'a','test')fromtb
droptabletb
指定排序規則即可
Windows排序規則名稱
在COLLATE子句中指定Windows排序規則名稱。Windows排序規則名稱由排序規則指示器和比較風格構成。
語法
<Windows_collation_name>::=
CollationDesignator_<ComparisonStyle>
<ComparisonStyle>::=
CaseSensitivity_AccentSensitivity
[_KanatypeSensitive[_WidthSensitive]]
¦_BIN
參數
CollationDesignator
指定Windows排序規則使用的基本排序規則。基本排序規則包括:
當指定按字典排序時應用其排序規則的字母表或語言
用於存儲非Unicode字元數據的代碼頁。
例如Latin1_General或法文,兩者都使用代碼頁1252,或土耳其文,它使用代碼頁1254。
CaseSensitivity
CI指定不區分大小寫,CS指定區分大小寫。
AccentSensitivity
AI指定不區分重音,AS指定區分重音。
KanatypeSensitive
Omitted指定不區分大小寫,KS指定區分假名類型。
WidthSensitivity
Omitted指定不區分大小寫,WS指定區分大小寫。
BIN
指定使用二進制排序次序。
如果你只是目前查詢區分,那麼還是不要這樣改,免得又反悔,如此查詢:
select*froma
/*
a_nama_add
--------------------
1aa
1bb
2cc
2vv
2kk
3dd
3ee
4dd
5ee
6yy
6yy
(11row(s)affected)
*/
現在我們查詢a_add='aa'的,'Aa'等等不行!
Example1:
select*froma
wherea_addcollateChinese_PRC_CS_AS_WS='aa'
/*
a_nama_add
--------------------
1aa
(1row(s)affected)
*/
Example2:
select*froma
wherea_addcollateChinese_PRC_CS_AS_WS='Aa'
/*
a_nama_add
--------------------
(0row(s)affected)
*/
方法三.上面的記不住,那麼就用最笨的方法,轉化為ascii
select*froma
where
ascii(substring(a_add,1,1))=ascii(substring('Aa',1,1))
and
ascii(substring(a_add,2,1))=ascii(substring('Aa',2,1))
/*
a_nama_add
--------------------
(0row(s)affected)
*/
方法三:任何版本都可以
select*froma
wherecast(a_addasvarbinary(10))=cast('aa'asvarbinary(10))
如若滿意,請點擊右側【採納答案】,如若還有問題,請點擊【追問】
希望我的回答對您有所幫助,望採納!
~ O(∩_∩)O~
④ 修改SQL資料庫排序規則修改表欄位排序規則
修改SQL資料庫排序規則修改表欄位排序規則
修改SQL資料庫排序規則:
1.修改為單用戶模式
2.然後關閉所有的查詢窗口,修改Options的Collocation屬性,如:Chinese_PRC_90_CI_AS
3.再修改為多用戶模式
修改表欄位排序規則:
使用存儲過程處理,可以指定對應的表,
存儲過程處理步驟:
1-刪除外鍵
(含對應的sql語句)
2-刪除主鍵
(含對應的sql語句)
2.5-刪除索引
(含對應的sql語句)
3-修改排序規則
(含對應的sql語句)
4-生成主鍵
(含對應的sql語句)
5-生成外鍵
(含對應的sql語句)
6-生成索引
(含對應的sql語句)
7-執行對應的sql語句及導出
或
不執行對應的sql語句只導出
存儲過程下載:
⑤ 什麼是資料庫里的排序規則
按一定規則排序,比如日期,大小等
⑥ 更改SQL Server 2012 資料庫排序規則
針對市面上有部份應用系統或者ERP系統對於資料庫的排序規則是有要求,若安裝資料庫時沒有留意,採用默認安裝後,導致應用打開出現異常或者亂碼現象。其實不用再卸載重裝,通過如下步驟進行更改,節省大量的時間:
1、先停止需要變更 sqlserver 的服務 : 在 運行命令行中 services.msc 命令,在打開的服界面打到並關閉sql server 的服務;(直接通過 Net stop mssqlserver 語句也可以關閉SQL Server 後台服務)
2、執行命令:(cmd命令行)
F:>Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=administrator /SAPWD=****** /SQLCOLLATION=Chinese_PRC_BIN
參數介紹:
InstanceName : MSSQLSERVER 默認為:MSSQLSERVER
SQLSYSADMINACCOUNTS: administrator 默認為:administrator
StrongPassword : sa賬號的密碼
CollationName : Chinese_PRC_BIN (根據實際情況需要填寫)
F:>setup為安裝文件存放路徑;
3、等幾分鍾。出現成功提示
4、執行命令 Net start mssqlserver 啟動 SqlServer
5、原有各個資料庫會被移出,需要手動進行「附加資料庫」資料庫操作
⑦ GB2312對應sqlserver資料庫的排序規則是什麼
存儲數據時如果出現亂碼,可能情況如下:
1.提交到資料庫的字元是亂碼
2.
資料庫排序規則不支持該字元集
3.資料庫表欄位的類型設計不合適,最好選用nvarchar,nchar
4.插入字元串時強制存儲格式
insert
into
[表名]
([欄位1])
values(N'字元串'),最好在字元串前指定
N
⑧ 資料庫中的數據順序怎麼能根據自己的意圖隨意排序
數據的存儲順序和查出來後顯示的順序不同,看問題提出者的意思,是想改變數據的存儲順序。
可以充分利用主鍵,預設的主鍵有聚簇索引特性,而聚簇索引的條目存放順序與數據本身的存放順序一致,充分利用這一點,改變主鍵或主鍵欄位的取值,即可完成數據存儲順序的自編排。
例子中的id像是個常用的主鍵欄位名,那麼,修改某條記錄的id值,無論是通過insert還是update,均已能夠完成對應數據條目存儲位置的變化。
如果想對根據任意欄位實現存儲順序的自編排,恐怕是不行的,除非可以撤銷表的原有主鍵,而將該欄位設置為主鍵,但設為主鍵,就要求該欄位的不可重復、不許為空等約束,而不是任意。
⑨ 資料庫表排序規則是物理地址排序嗎
展開全部
沒有Order
by的時候。。或者排序的條件不是唯一的時候,是可能會出現排序隨機的情況的。在oracle也是一樣。。
至於沒有order
by的時候是怎樣的?要看資料庫內部是實現方案了。
⑩ 什麼是資料庫字元集和排序規則
排序規則指定表示數據集中每個字元的位模式。
排序規則還決定用於數據排序和比較的規則。SQL
Server
2005
支持在單個資料庫中存儲具有不同排序規則的對象,即
SQL
Server
資料庫中每列都可以有各自的排序規則。對於非
Unicode
列,排序規則設置指定數據的代碼頁,從而指定可以表示哪些字元。