2013年5月29日 星期三

談談SQL Server的定序(Collation)


from http://www.dotblogs.com.tw/jimmyyu/archive/2009/08/30/10320.aspx



定序指的就是決定資料被排序與比對的規則,而比對的規則一般可粗分為幾大類:

定序的分類

  • Case sensitivity(CS) 簡單來說就是區分大小寫,A跟a是不同的,如果是Case Insensitive(CI)的話A在排序或者查詢時就會被視為相同,也就是查詢A,連同a也會被查詢到。
  • Accent sensitivity(AS) 代表的是腔調上的差別,a跟á、o跟ó在腔調上是相同的,那查詢時是要視為相同,如果是的話,那就是Accent Insensitive(AI),如果不是的話就視為Accent sensitive。
  • Kana Sensitivity(KS) 日文中的片假名(Hiragana)與平假名(Katakana)如果被視為相同,那就是Kana Insensitive(KI),反之就是Kane sensitive.。
  • Width sensitivity(WS) 當半形字與全型自被視為相同(A跟A),那就是Width Insensitive(WI),反之就是Width sensitive。

解決 MsSql 安裝圖表失敗時的解決辦法

from http://libraclark.blogspot.tw/2008/05/mssql.html


在 MsSql 資料庫中安裝圖表時會有二種情況下使得安裝失敗,
而失敗時則都會出現以下的錯誤訊息:

無法安裝資料庫圖表支援物件,因為此資料庫沒有有效的擁有者。若要繼續,請先使用 [資料庫屬性] 對話方塊的 [檔案] 頁面,或使用 ALTER AUTHORIZATION 陳述式,將資料庫擁有者設定為有效的登入,然後再加入資料庫圖表支援物件。

以下為這二種失敗情況的解法方法:
情況一
資料庫必須在 SQL Server 2005 資料庫相容性層級中。如果資料庫的相容性層級不是 90,則當您嘗試安裝圖表支援時,就會發生錯誤。
您可以重設資料庫的相容性層級。使用下列 Transact-SQL 陳述式變更資料庫的相容性層級,然後再重試資料庫圖表作業。

EXEC sp_dbcmptlevel 'database_name', '90';

情況二
在已由另一個 SQL Server 執行個體附加或還原的資料庫上,這些支援物件的安裝可能會失敗。如果資料庫擁有者名稱 (儲存在資料庫中) 在資料庫附加或還原的目標 SQL Server 執行個體中不是有效的登入時,就有可能發生這種狀況。
請使用下列 Transact-SQL 陳述式,將資料庫擁有者改成 SQL Server 執行個體中的有效登入,然後再重試資料庫圖表作業。

ALTER AUTHORIZATION ON DATABASE::database_name TO valid_login

以上撰寫 Transact-SQL 陳述式時,將 database_name 改成你資料庫名稱, valid_login 改成你登入SQL的帳號名稱即可。
 

MangoHost Copyright © 2009 Cookiez is Designed by Ipietoon for Free Blogger Template