SQL Server 2000 SP4 的主流支援服務已經在 2008 年 4 月 8 日結束,但依舊還是有人在使用,如果可以,應該是要升級到尚提供支援服務的版本,例如:SQL Server 2008。日前就被人家問到了,關於 SQL Server 2000 定序的相關問題,特將其整理如後。
查詢特定資料庫的定序
使用如下的 T-SQL 語法:SELECT DATABASEPROPERITYEX('<資料庫名稱>', 'Collation')
指定定序的方式
指定定序的方式有 3 種,第 1 種是在安裝 SQL Server 2000 時,就加以指定,這是所謂的伺服器層級的定序。若習慣使用預設的安裝方式,則肯定是看不到定序的設定選項。
另外 2 種則是在建立資料庫或資料表時,才加以指定,這種是資料庫層級的定序與資料表層級定序。
- 伺服器層級的定序
於安裝 SQL Server 時,選擇「進階選項」(Advanced options)進行安裝,才能出現指定定序的對話視窗
- 資料庫層級定序
於建立資料庫時,指定所要的定序
- 資料表層級定序
於建立資料表時,指定所要的定序
修改定序
- 重設伺服器定序,可用 rebuildm.exe。當 master 系統資料庫毀損時,也可用這個工具進行修正。
- 於建立資料庫或資料表後,修改資料庫或資料表的定序:
-- 修改資料庫定序為 Chinese_PRC_CI_AS ALTER DATABASE AlexChuo SET SINGLE_USER WITH ROLLBACK IMMEDIATE; ALTER DATABASE AlexChuo COLLATE Chinese_PRC_CI_AS; ALTER DATABASE AlexChuo SET MULTI_USER; -- 修改資料表定序為 Chinese_PRC_CI_AS ALTER TABLE Mytable ALTER COLUMN 姓名 nvchar(10) COLLATE Chinese_PRC_CS_AI;
要注意的是,修改資料庫的定序設定,並不會變更該資料庫內既有物件的定序設定。 - 修改欄位定序比較簡單,只要使用如下的 T-SQL:
ALTER TABLE <資料表名稱> ALTER COLUMN <欄位名稱> <欄位類型與長度> COLLATE <定序>;
例如:
ALTER TABLE 員工 ALTER COLUMN 姓名 nvchar(10) COLLATE Chinese_PRC_CS_AI;