當前位置:首頁 » 操作系統 » 資料庫排序規則

資料庫排序規則

發布時間: 2024-05-26 04:49:42

sql Server轉換資料庫的排序規則

什麼是排序規則?

排序規則指定了表示每個字元的位模式 它還指定了用於排序和比較字元的規則 排序規則具有下面的特徵

◆語言

◆區分大小寫

◆區分重音

◆區分假名

要了解伺服器當前使用的排序規則 可以在 SQL 查詢分析器中運行 sp_helpsort 系統過程

SQL Server 不支持使用多個排序規則的資料庫 因此 在 SQL Server 中創建的所有資料庫均使用默認的排喊瞎序規則 SQL Server 支持多個排序鄭譽空規則 SQL Server 資料庫可使用除默認排序規則以外的其他排序規則 此外 SQL Server 還支持使用排序規則(除資料庫創建的排序規則外)的列

在 DTS 中使用「使用排序規則」選項的條件

SQL Server 可包含多個資料庫或列 它們可以使用除默認排序規則以外的排序規則 因此 在數據轉換服務 (DTS) 中引入了名為「使用排序規則」的新選項 「使用排序規則」選項的行為由要執行的轉換的類型決定 如果要在 SQL Server 的兩個實例之間傳輸數據且啟用了「使用排序規則」選項 則數據將從源代碼頁轉換到目標代碼頁 如果沒有啟用「使用排序規則」選項且 SQL Server 的兩個實例中的代碼頁相同 則會直接傳輸數據 如果代碼頁不同 則數據將從源代碼頁轉換到目標代碼頁 但是 在傳輸數據時 轉換可能會出現錯誤

注意 如果排序規則用於數據本身並且列使用的是 COLLATE 子句 則排序規則很重要 「使用排序規則」選項確定當數據從一個排序規則傳輸到另一個排序規則時是否轉換代碼頁 「使用排序規則」選項不會影響是否設置了列定義的 COLLATE 屬性 因此 如果源表包含使用 COLLATE 子句創建的帶有特定排序規則的列 則此排序規則將在傳輸數據時得以保留 而不管是否在數據轉換服務向導中啟用了「使用排序規則」選項

不改變資料庫排序規則的轉換方法

下列方法不改變資料庫的排序規則

◆備份和還原虛鏈 在某伺服器上還原資料庫時 如果該伺服器使用的排序規則與用於備份的伺服器使用的排序規則不同 則不會將還原後的資料庫轉換為使用新的排序規則 資料庫排序規則仍保持原樣

◆分離和重新附加 如果分離使用某一排序規則創建的資料庫 並且將該資料庫重新附加到使用其他排序規則的另一伺服器 則該資料庫的排序規則不會改變 資料庫的排序規則仍保持原樣

◆復制資料庫向導 復制資料庫向導實質上使分離和重新附加的過程自動化了 資料庫的排序規則仍保持原樣

注意 復制資料庫向導僅在 SQL Server 中可用

在 SQL Server 中轉換資料庫的排序規則

要在運行 SQL Server 的兩台計算機之間更改資料庫的排序規則 必須在目標伺服器上創建用戶資料庫和所有對象 然後使用 DTS 或 bcp 實用工具傳輸數據

要將資料庫從運行 SQL Server 的計算機傳輸到運行 SQL Server 且具有另一排序規則的計算機 請按照下列步驟操作

備份源資料庫

使用 SQL Server 企業管理器為源資料庫中的所有對象創建腳本

要從資料庫的所有表中導出數據 請使用 DTS 或 bcp 實用工具

使用 SQL Server 企業管理器或 CREATE DATABASE 語句在目標伺服器上創建新的資料庫

注意 當使用 CREATE DATABASE 語句時 資料庫將使用與運行 SQL Server 的計算機相同的排序規則

使用 SQL 查詢分析器來運行在步驟 中創建的腳本 以便在目標資料庫中重新創建所有對象

注意 此表和列將使用與運行 SQL Server 的計算機相同的排序規則

使用 DTS 或 bcp 實用工具將數據導入到目標表中

將 SQL Server 中資料庫的排序規則轉換為 SQL Server 中的排序規則

要在 SQL Server 和 SQL Server 之間更改資料庫的排序規則 必須在傳輸數據之前 在目標伺服器上使用適當的排序規則創建資料庫 列或同時創建資料庫和列 但是 在將數據從 SQL Server 傳輸到 SQL Server 時 可以使用 DTS 刪除並重新創建對象 因此 在執行此操作時 必須在 DTS 中啟用「使用排序規則」選項

注意 請不要使用 SQL Server 中的 DTS 實用工具與運行 SQL Server 的計算機相互傳輸所有對象 如果必須在 SQL Server 和 SQL Server 之間傳輸數據 則必須使用 SQL Server 中的 DTS 實用工具

要將 SQL Server 中資料庫的排序規則轉換為 SQL Server 中的排序規則 請按照下列步驟操作

備份源資料庫

使用 SQL Server 企業管理器為源資料庫中的所有對象創建腳本

如果列必須使用其他排序規則 而不使用目標資料庫上的默認排序規則 請對腳本中相應列的排序規則進行必要的更改

使用適當的排序規則在目標伺服器上創建新的資料庫

使用 SQL 查詢分析器在目標伺服器上運行在步驟 中創建的腳本 以便在資料庫中重新創建所有對象

注意 新表和列使用與資料庫相同的排序規則 除非您為這些列指定了其他排序規則

使用 DTS 或 bcp 實用工具傳輸數據

注意 如果使用 DTS 請驗證下列信息

◆確保在將數據從 SQL Server 傳輸到 SQL Server 時啟用了「使用排序規則」選項

◆因為已在目標伺服器上使用適當的排序規則創建了對象 所以要禁用「首先創建目標對象」選項

在 SQL Server 中轉換資料庫的排序規則

要在 SQL Server 中轉換資料庫的排序規則 請按照下列步驟操作

備份源資料庫

注意所有列是否使用 COLLATE 子句

使用適當的排序規則在目標伺服器上創建新的資料庫

如果沒有列使用 COLLATE 子句 請使用 DTS 將數據傳輸到目標伺服器 為此 請啟用「使用排序規則」選項以進行代碼頁轉換 並將數據轉換為目標資料庫上的新排序規則 如果所有列均使用 COLLATE 子句 請按照下列步驟操作

a 為所有對象(不包括索引 觸發器 主鍵 外鍵 默認設置和約束)生成腳本 此外 確保啟用了「僅為與 版兼容的功能編寫腳本」選項 以便從腳本刪除 COLLATE 子句

注意 使用「僅為與 版兼容的功能編寫腳本」選項時 可以更改排序規則 但是 生成腳本時將不考慮任何新的 SQL Server 選項(包括用戶定義的函數 擴展屬性 INSTEAD OF 觸發器和視圖上的索引)

b 在目標資料庫上運行步驟 a 中創建的腳本 以便使用目標資料庫的排序規則創建對象

c 使用 DTS 僅傳輸源資料庫中的數據

d 成功傳輸數據後 將會為源資料庫中的所有約束 外鍵 主鍵和索引生成腳本

e 在目標資料庫上運行步驟 d 中創建的腳本

更改 master 資料庫的排序規則

如果要更改 master 資料庫的排序規則 則必須重建 master 資料庫 在重建 master 資料庫時 實質上是創建了新的 master 資料庫 因此 重建 master 資料庫之前 應考慮下列事項

◆確保創建了當前 master 資料庫的有效備份 在重建 master 資料庫時 還會重建 msdb 資料庫和 model 資料庫 因此 在重建 master 資料庫之前必須備份 msdb 資料庫和 model 資料庫 msdb 資料庫是用於存儲 SQL Server 作業 警報 運算符和 DTS 包的系統資料庫 model 資料庫是創建新資料庫時所使用的模板資料庫

◆因為重建 master 資料庫會創建一個新的 master 資料庫 所以必須在重建 master 資料庫之後重新輸入現有登錄信息 因此 還必須在重建 master 資料庫之前導出登錄信息 然後在重建 master 資料庫後 導入登錄信息

◆因為在重建 master 資料庫時會重建 msdb 資料庫 所以在重建 master 資料庫之前 必須為所有作業 警報和運算符生成腳本 此外 還必須確保移動了所有 DTS 包

◆因為在重建 master 資料庫時會重建 model 資料庫 所以在重建 master 資料庫之前 必須記下或導出以前對 model 資料庫所做的全部更改或為其生成腳本 重建 model 資料庫之後 請重新應用已記錄的全部更改

在 SQL Server 中更改 master 資料庫的排序規則

更改 master 資料庫的排序規則之前 請按照下列步驟操作

重建 master 資料庫之後 不會自動恢復在重建此資料庫之前創建的所有資料庫 因此 所有資料庫必須從備份進行還原 或者如果文件仍在磁碟上 則可以使用 sp_attach_db 系統存儲過程重新附加資料庫 請確保在重建 master 資料庫之前將所有必要的信息重新附加到現有資料庫

在重建 master 資料庫時 僅更改 master 資料庫 model 資料庫和 msdb 資料庫的排序規則 不會更改用戶資料庫的排序規則 要更改現有用戶資料庫的排序規則或者使用適當的排序規則創建新的資料庫 請使用 ALTER DATABASE 命令 然後使用 DTS 或 bcp 實用工具將數據傳輸到新的資料庫

注意 如果在 SQL Server 中使用 ALTER DATABASE 命令來更改資料庫的排序規則 則表中列的排序規則將不會自動更改 要更改列的排序規則 請使用 ALTER TABLE 命令和 ALTER COLUMN 命令 如果使用 DTS 則可以在傳輸數據或使用「使用排序規則」選項之前 使用適當的排序規則創建表和列 如果使用的 DTS 和表已經包含適當的排序規則 請確保在運行軟體包之前禁用了「首先刪除現有對象」選項

在 SQL Server 中更改 master 資料庫的排序規則

更改 master 資料庫的排序規則之前 請按照下列步驟操作

SQL Server 不支持資料庫使用除默認排序規則以外的排序規則 因此 在重建 master 資料庫之前 請從用戶資料庫中導出所有數據

為資料庫中的所有對象生成腳本

使用適當的排序規則重新創建 master 資料庫

創建新的資料庫 使用新的默認排序規則自動創建新的資料庫

lishixin/Article/program/SQLServer/201311/22349

❷ 更改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、原有各個資料庫會被移出,需要手動進行「附加資料庫」資料庫操作

❸ 對於excel資料庫 排序是按照什麼進行的

excel默認按數據的首字ASCII大小進行排序。

❹ SQL 中的collate Latin1_General_CS_AI是什麼意思

collate Latin1_General_CS_AI
就是使用Latin1_General_CS_AI這種排序規則。
Latin1_General_CS_AI是一個排序規則的名稱,是眾多排序規則中的一種。

----知識拓展.排序規則名稱----
排序規則名稱由兩部份構成,前半部份是指本排序規則所支持的字元集:比如:
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區分

----知識拓展.排序規則等級----
SQL Server中有4個級別的排序設置:
1.
伺服器級排序規則:
默認排序規則是在 SQL Server 安裝期間設置的,並且會成為系統資料庫的默認排序規則。
2.
資料庫級排序規則:
創建資料庫時,可以使用 CREATE DATABASE 語句的 COLLATE 子句指定默認的資料庫排序規則。如果未指定排序規則,則為該資料庫分配 model 資料庫的默認排序規則。model 資料庫的排序規則與 SQL Server 實例的默認排序規則相同。
3.
列級排序規則:
創建表時,可以使用 CREATE TABLE 語句的 COLLATE 子句指定每個字元串列的排序規則。如果未指定排序規則,則為該列分配資料庫的默認排序規則。
4.
表達式級排序規則:
表達式級排序規則在語句運行時設置,並且影響結果集的返回方式。這可以使 ORDER BY 排序結果特定於區域設置。使用如下的 COLLATE 子句可以實現表達式級排序規則:
SELECT name FROM customer ORDER BY name COLLATE Latin1_General_CS_AI

❺ navicat 工具新建資料庫時,字元集 和 排序規則,是什麼意思啊,又該怎麼選擇

字元集一般是utf8. 排序也選utf8. 一般選擇和表一樣。

通過mysql命令修改:修改資料庫的字元集 mysql>use mydb mysql>alter database mydb character set utf-8;

創建資料庫指定資料庫的字元集 mysql>create database mydb character set utf-8;

通過配置文件修改: 修改/var/lib/mysql/mydb/db.opt default-character-set=latin1 default-collation=latin1_swedish_ci 為 default-character-set=utf8 default-collation=utf8_general_ci 重起MySQL。

(5)資料庫排序規則擴展閱讀:

Navicat Premium 使能簡單並快速地在各種資料庫系統間傳輸數據,或傳輸一份指定 SQL 格式及編碼的純文本文件。這可以簡化從一台伺服器遷移數據到另一台伺服器的類型的進程。不同資料庫的批處理作業也可以計劃並在指定的時間運行。

不同資料庫的批處理作業可以計劃並在指定的時間運行。其他功能包括導入向導、導出向導、查詢創建工具、報表創建工具、資料同步、備份、工作計劃及更多。

❻ 什麼是資料庫字元集和排序規則

排序規則指定表示數據集中每個字元的位模式。
排序規則還決定用於數據排序和比較的規則。SQL
Server
2005
支持在單個資料庫中存儲具有不同排序規則的對象,即
SQL
Server
資料庫中每列都可以有各自的排序規則。對於非
Unicode
列,排序規則設置指定數據的代碼頁,從而指定可以表示哪些字元。

❼ 資料庫默認的排序規則是怎樣的 還有 如果按照我想要的方式做排序要怎麼寫

你要求的排列沒有什麼規律呀。
一般都是用
order
by
欄位名
DESC
倒敘排列
或者order
by
欄位名
asc
正序排列
ORACEL的默認排序是
1、用了Oracle的堆表(如果你建表時候沒有指定表類型,默認就是堆表)
2、按照且僅按照一個有大量重復數據的欄位排序
而且oracle11G已經取消了這種默認的排序機制,目的就是為了能在最短的時間返回出結果給操作者。

熱點內容
資料庫動態查詢 發布:2024-06-22 20:19:18 瀏覽:950
linuxtab鍵 發布:2024-06-22 20:16:28 瀏覽:485
解壓成光碟0 發布:2024-06-22 19:37:20 瀏覽:1000
keil4編譯輸出 發布:2024-06-22 19:37:20 瀏覽:799
方舟怎麼設置私人伺服器 發布:2024-06-22 19:37:18 瀏覽:113
javanpe 發布:2024-06-22 19:32:19 瀏覽:50
weblogiclinux集群部署 發布:2024-06-22 19:29:19 瀏覽:21
入戶上傳 發布:2024-06-22 19:00:37 瀏覽:511
ftp站點是什麼 發布:2024-06-22 19:00:26 瀏覽:684
通過郵箱地址查找伺服器地址 發布:2024-06-22 18:58:53 瀏覽:353