# پایگاه‌های داده > SQL Server > مدیریت دیتابیس (Database Administration) > مسائل مرتبط با نصب و راه اندازی >  تغییر زبان و تنظیمات collation بعد از نصب sql server 2008

## connector

سلام
من روی سرورم sql server 2008 راه اندازی شده. ولی نیاز دارم که در collation زبان را به Persian_100_CI_AS تغییر دهم. این تنظیمات رو در هنگام نصب در configuration قرار داره. ولی بعد از اینکه sql server 2008 نصب شده نمی دونم که از کجا میشه تغییرش داد. دوستان لطف می کنند به من بگین که از کجا میشه تغییر بدم؟

----------


## in_chand_nafar

دوست عزيز اين Collation مربوط به Instance‌مي باشد (و شايد تغيير اون فرقي به حال شما نكنه...اگر بيشتر توضيح دهيد راهنمايي خوبي مي توانيم بكنيم)
در ضمن پس از نصب Collation مربوط به Instance را نمي توانيد عوض كنيد و بايد در Command Prompt‌اين كار را با دستورات زير انجام دهيد
E:\setup.exe /Quiet  /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER  /SQLSYSADMINACCOUNTS=x \Administrator /SAPWD=x  /SQLCOLLATION=SQL_Latin1_General_CP850_BIN2 
توي مثال بالا محل setup.exeهمان محل setup مربوط به SQL‌مي باشد
به لينك زير هم سري بزن
http://sql-articles.com/articles/dba...l-server-2008/
اما شما مي توانيد Collation را به ازاي بانك اطلاعاتي خودتون تغيير بدهيد و اون رو عوض كني
در ضمن Collation را براي زبان فارسي بهتر است Persian_100_CI_AI قرار دهيد چون زبان فارسي مفهوم Accent Sensitive (حساسيت در تلفظ )برايش معني ندارد البته اگر براي ساير زبان ها داده ذخيره كرده ايد مفهوم خواهد داشت مثل فرانسه و .... 
نكته مهم ديگه اين است كه تغيير Collation مربوط به ديتابيس هيچ تاثيري بر روي فيلدهايي كه از قبل تعريف شده اند ندارد
Collation فقط به ازاي داده هاي كاركتري مفهوم دارد
استخراج ليست Collationهاي براي زبان فارسي

SELECT * FROM SYS.FN_HELPCOLLATIONS() WHERE NAME LIKE '%PERSIAN%'

به اين نوع توابع TVF يا Table Value Function مي گويند منظورم تابع FN_HELPCOLLATIONS است

----------


## in_chand_nafar

در ضمن براي دوستاني كه معني Collation (تلفظش كوليشن است و نه Collection كالكشن چند جا ديدم اين طوري تلفظ شده / قصد جسارت به هيچكدام از دوستان ندارم) را نمي دوند يك تعريف ساده وجود 
داره
اما تعريفش 
الگوي مرتب سازي اطلاعات  داخل جداول و ايندكس ها مي باشد و صرفا به ازاي داده هاي كاركتري مفهوم دارد و انواع مختلفي دارد
Windows Collation
SQL Collation
الباقي توضيحات را هر كس خواست بدونه چي بحث ادامه خواهد داشت
موفق باشيد

----------


## connector

حقیقت این هست که سرچ سایت ما خیلی کند هست و همچنین فشار زیادی به سی پی یو و رم سرور میاورد .بعد از اینکه تحقیقاتی انجام دادم متوجه شدم که باید از full text index و full test search یا همون FTS استفاده کرد. که برای این منظور باید تنظیمات collation روی Persian باشد.
البته طراح سایت خود من نیستم . ولی در حال تلاشم که اطلاعاتی به طراح سایت بدهم که بتواند بهترین سرچ را برای سایتم طراحی کند.اگه هم مطلبی در مورد اینکه چگونه می شود بهترین و سریع ترین سرچ را طراحی کرد به من بدهید که عالی میشه.

----------


## in_chand_nafar

ببين دوست عزيز شما Collation بانك اطلاعاتي خودت را مي توني عوض كني و روي Persian بگذاري بايد اون فيلدهايي را كه مي خواهي Fulltext بزني Collation اونها را عوض كني 
يه نكته ديگه با تغيير Collation بانك اطلاعاتي از اين به بعد هر فيلدو ...به بانك اطلاعاتي اضافه بشه Collation اون با Collation بانك اطلاعاتي يكسان در نظر گرفته ميشه

خوب حالا چند تا سوال : فيلدي كه مي خواهي روي اون Fulltext راه اندازي كني از چه نوعي است بهتر از نوع ntext  نباشه 
در ضمن Fulltext در برخي از حالت نتيجه اش با جستجوي بدون ايندكس (به خاطر روش ايندكس كردن اطلاعات) فرق مي كنه اما با كمي تغييرات در نويز ورود ها و... ميتونيد يه بلايي سر جستجو بياريد
در ضمن جهت اطلاع بدونيد كه سايت برادران بسيجي مون توي تبيان با اين تكنيك حدود 100 گيگابايت به بالا(100 گيگ داده بدون عكس) رو داران بالا پايين مي كنند
(آخري براي اين بود كه قدرت Fulltext رو بدونيد)

----------


## grafic

من با این دستور راحت تونستم عوض کنم


setup.exe /q /ACTION=RebuildDatabase /INSTANCENAME=MSSQLSERVER /SAPWD=***** /SQLSYSADMINACCOUNTS="BUILTIN\ADMINISTRATORS" /SQLCOLLATION=Arabic_CI_AS

----------


## sepahbod

با عرض سلام و خسته نباشید
من یه برنامه نوشتم که با SQL Server 2008 ارتباط برقرار می کنه حالا مشکل اینه که وقتی این برنامه به SQL Server ی متصل بشه که Collation آن برابر زبان فارسی باشه هنگام جستجوی کلمات فارسی مشکلی پیش نمی آید و تمام اطلاعات نشان داده می شود در برنامه ولی به SQL Server ی متصل شود که Collation آن برابر زبان فارسی نباشد در هنگام جستجوی کلمات فارسی چیزی نشان داده نمی شود .
دستور جسجوی من به این شرح است که متن مورد جستجو را در جعبه text1.text وارد می کنیم

SELECT * FROM ali WHERE name LIKE'%" & Text1.Text & "%'

حالا چکار کنم که هنگام اتصال برنامه به SQL Server ی که Collation آن به زبان فارسی نمی باشد هنگام جستجوی متن فارسی مشکلی پیش نیاید .
 نوشته بودید که می توانیم از دستور زیر استفاده کنیم
*SELECT* * *FROM* SYS.FN_HELPCOLLATIONS() *WHERE* *NAME* LIKE '%PERSIAN%'
حالا من چکونه این دستور را با دستور جستجوی خودم ترکیب کنم و یا این دو دستور را به هم بچسبانم و چی بنویسم که مشکلی پیش نیاید.
پیشاپیش از همکاری شما سپاسگذارم

----------


## ashkandehnavi

روی اسم دیتابیس که ساختی راست کلیک کن properties رو بزن از منوی راست روی option کلیک کن اونجا میتونی collation  رو عوض کنی بهتره بزاری روی Latin1_general_CP1256_CI_AS اگه بزاری رو این هیچ وقت به مشکل نمیخوری با زبان فارسی

----------


## nafisehk

> روی اسم دیتابیس که ساختی راست کلیک کن properties رو بزن از منوی راست روی option کلیک کن اونجا میتونی collation  رو عوض کنی بهتره بزاری روی Latin1_general_CP1256_CI_AS اگه بزاری رو این هیچ وقت به مشکل نمیخوری با زبان فارسی


سلام
تغییر دادم اما همچنان به جای حروف فارسی ? میزاره...

----------


## SayeyeZohor

اين تغييرات تاثيري بر ديتاهاي قبلي ندارد
براي امتحان يك ركورد جديد فارسي ايجاد كنيد و تست كنين

----------


## mehdi.safavie

درود;
دوست عزیزمون ashkandehnavi راه رو درست گفتن ، راحت ترین راه اینه که اگر SQL رو نصب کردی و Collation رو موقع نصب تنظیم نکردی ، سر هر دیتابیس روی اون راست کلیک کنی و از منوی Peropertis گزینه Option رو انتخاب کنی ، و Collation اون رو تنظیم کنی !
من یه پروژه عظیم نوشتم که Collation اون روی Arabic_CI_AS تنظیم شده ، نه روی ذخیره اطلاعات مشکلی دارم و نه روی سرچ کردن اطلاعات ( فارسی )
حالا میتونی یه کم بیشتر سرچ کنی اگه ماله تو روی این گزینه مشکل داره ، ببینی دوستان روی SQL 2008 چه گزینه هایی رو پیشنهاد دادن !
مهم اینه که یه راه ساده میخواستی برای عوض کردن Collation که ashkandehnavi ترتیبش رو برات داده  :چشمک:

----------


## mmbguide

خروجی دستور معرفی شده به شرح زیر است. لطفا اگر امکان دارد توضیح دهید چرا اینقدر برای زبان فارسی Collation وجود داره

name                                               description
-------------------------------------------------------------------------------------------------------------------------------- 
Persian_100_BIN                                    Persian-100, binary sort
Persian_100_BIN2                                   Persian-100, binary code point comparison sort
Persian_100_CI_AI                                  Persian-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-insensitive
Persian_100_CI_AI_WS                               Persian-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-sensitive
Persian_100_CI_AI_KS                               Persian-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-insensitive
Persian_100_CI_AI_KS_WS                            Persian-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-sensitive
Persian_100_CI_AS                                  Persian-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive
Persian_100_CI_AS_WS                               Persian-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-sensitive
Persian_100_CI_AS_KS                               Persian-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-insensitive
Persian_100_CI_AS_KS_WS                            Persian-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-sensitive
Persian_100_CS_AI                                  Persian-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-insensitive
Persian_100_CS_AI_WS                               Persian-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-sensitive
Persian_100_CS_AI_KS                               Persian-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-insensitive
Persian_100_CS_AI_KS_WS                            Persian-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-sensitive
Persian_100_CS_AS                                  Persian-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-insensitive
Persian_100_CS_AS_WS                               Persian-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-sensitive
Persian_100_CS_AS_KS                               Persian-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-insensitive
Persian_100_CS_AS_KS_WS                            Persian-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-sensitive
Persian_100_CI_AI_SC                               Persian-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-insensitive, supplementary characters
Persian_100_CI_AI_WS_SC                            Persian-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-sensitive, supplementary characters
Persian_100_CI_AI_KS_SC                            Persian-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-insensitive, supplementary characters
Persian_100_CI_AI_KS_WS_SC                         Persian-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-sensitive, supplementary characters
Persian_100_CI_AS_SC                               Persian-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive, supplementary characters
Persian_100_CI_AS_WS_SC                            Persian-100, case-insensitive, accent-sensitive, kanatype-insensitive, width-sensitive, supplementary characters
Persian_100_CI_AS_KS_SC                            Persian-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-insensitive, supplementary characters
Persian_100_CI_AS_KS_WS_SC                         Persian-100, case-insensitive, accent-sensitive, kanatype-sensitive, width-sensitive, supplementary characters
Persian_100_CS_AI_SC                               Persian-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-insensitive, supplementary characters
Persian_100_CS_AI_WS_SC                            Persian-100, case-sensitive, accent-insensitive, kanatype-insensitive, width-sensitive, supplementary characters
Persian_100_CS_AI_KS_SC                            Persian-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-insensitive, supplementary characters
Persian_100_CS_AI_KS_WS_SC                         Persian-100, case-sensitive, accent-insensitive, kanatype-sensitive, width-sensitive, supplementary characters
Persian_100_CS_AS_SC                               Persian-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-insensitive, supplementary characters
Persian_100_CS_AS_WS_SC                            Persian-100, case-sensitive, accent-sensitive, kanatype-insensitive, width-sensitive, supplementary characters
Persian_100_CS_AS_KS_SC                            Persian-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-insensitive, supplementary characters
Persian_100_CS_AS_KS_WS_SC                         Persian-100, case-sensitive, accent-sensitive, kanatype-sensitive, width-sensitive, supplementary characters

درضمن جناب ashkandehnavi گزینه  Latin1_general_CP1256_CI_AS را پیشنها کرده اند که در فارسی هم جواب میده. پس لیست بالا برای چیه؟

ممنون

----------


## √Nemo√

سلام برای منم همین سوال پیش امده که چرا این همه *Persian_100* وجود داره میشه یه نفر توضیح بده و هرکدوم به چه دردی میخوره..

----------


## ja.softeng

> خروجی دستور معرفی شده به شرح زیر است. لطفا اگر امکان دارد توضیح دهید چرا اینقدر برای زبان فارسی Collation وجود داره
> 
> name                                               description
> -------------------------------------------------------------------------------------------------------------------------------- 
> Persian_100_BIN                                    Persian-100, binary sort
> Persian_100_BIN2                                   Persian-100, binary code point comparison sort
> Persian_100_CI_AI                                  Persian-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-insensitive
> Persian_100_CI_AI_WS                               Persian-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-sensitive
> Persian_100_CI_AI_KS                               Persian-100, case-insensitive, accent-insensitive, kanatype-sensitive, width-insensitive
> ...





> سلام برای منم همین سوال پیش امده که چرا این همه *Persian_100* وجود داره میشه یه نفر توضیح بده و هرکدوم به چه دردی میخوره..


برای منم این سوال بود
که یک فایل صوتی دیدم کلا جواب همه رو داده
https://nikamooz.com/what-is-collation-in-sql-server/

----------


## ja.softeng

در ضمن پیشنهاد بنده برای زبان فارسی گزینه زیر است:_Persian_100_CI_AI Persian-100, case-insensitive, accent-insensitive, kanatype-insensitive, width-insensitive
_
_چون حساس به حروف بزرگ و وکوچک نیست (__case-insensitive)__
حساس به لهجه تلفظی نیست (__accent-insensitive)__
حساس به زبان ژاپنی نیست (__kanatype-insensitive)__
برای موارد varchar و nvarchar فرقی قائل نمیشه (__width-insensitive)__
همه اینا در پردازش و کوءری زدن تاثیر بسزایی داره_

----------

