آموزش SQL Server 2008 - قسمت نهم

CharacterSet در SQL Server با Collation ها کنترل می شود . Collate یک خصوصیتی است که برای سطوح زیر قابل تنظیم است :
1- Server

2- DataBase  خاص

3- فیلد خاص از جدول خاص

4- یک Query خاص

زمان نصب SQL Server ،از شما Collation پرسیده می شود.این می شودcollection  مربوط به سرور. که آن پیش فرض تمام DataBase ها و به تبع فیلدهای جداول آنان و تمام Query ها می شود.

برای دیدن لیست این Collatio ها از دستور زیر استفاده کنید:

SELECT * FROM ::fn_helpcollations()

برای اینکه بدانید Collation مربوط به سرورتان چیست:

SELECT SERVERPROPERTY('collation')

برای اینکه بدانید Collation مربوط به DataBase مورد نظرتان چیست:

SELECT DATABASEPROPERTYX('dbname','collation')

تغییر Collation یک DataBase:

ALTER DATABASE dbname

COLLATE collationname

و یا اگر می خواهید یک Query خاص Collation خاص خود را داشته باشد:

SELECT fieldlist FROM tablename

COLLATE collationname

مثلا:

SELECT * FROM Product

ORDER BY ProductName

COLLATE Danish_norwegian_CI_AI

نکته :

البته لازم به ذکر است که Collation فقط رو فیلدهایی عمل می کند که نوعشان Char , VARCHAR یا TEXT باشد. این خصوصیت مشخص می کند که :

1- از چه Codepageی استفاده شود.که SQL Server می تواند 2 نوع CharacterSet را پشتیبانی کند:

الف-Unicode

ب-non-Unicode مثلا:     1252<-Arabic->1256 , Latin

2-Sort Order به چه شکل باشد. Sort Order به SQL Server می گوید که چگونه و بر طبق چه قاعده ای , اطلاعات رشته ای را مقایسه , تلفیق , مرتب و ارائه کند.

مثلا case-sensitive یا case-insensitive باشد , accent-sensitive یا accent-insensitive باشد , مرتب ساری بر اساس Dictionary باشد یا Binary.

بدین ترتیب arabic_ci_as مفهوم پیدا می کند.

/ 2 نظر / 179 بازدید
alishabany

سلام خسته نباشيد 9 قسمت آموزش sqlserver2008 بسيار مفيد بود اينجاب از شما تشكر فراوان داريم اميدوارم اين راه را ادامه بدهيد

Mehdi.Safavie

به این لینک هم سر بزنید ، جواب کامل به صورت راه ساده تری توضیح داده شده : http://barnamenevis.org/showthread.php?320771-%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1-%D8%B2%D8%A8%D8%A7%D9%86-%D9%88-%D8%AA%D9%86%D8%B8%DB%8C%D9%85%D8%A7%D8%AA-collation-%D8%A8%D8%B9%D8%AF-%D8%A7%D8%B2-%D9%86%D8%B5%D8%A8-sql-server-2008