PDA

View Full Version : collation



bftarane
شنبه 18 آذر 1391, 15:39 عصر
سلام.
من چطور مي تونم بفهمم collation يک ديتابيس چي هست؟
و چطور مي تونم collation رو براي يک ديتابيسي که ساخته شده از قبل تغيير بدم.

من وقتي در Sqlserver در لوکال ديتابيس درست مي کنم مشکلي ندارم.
ولي امروز يه ديتابيس از طريق کنترل پنل ايجاد کردم و اومدم از ديتابيس خودم اسکريپت گرفتم و در هاست ران کردم
اتفاقي که افتاد اين بود که اطلاعات منوم که به صورت علامت سوال دراومدن.
اومدم دستي هم داده وارد کردم
مثلاً زدم صفحه اصلي ديدم در خود جدول به هم صورت علامت سوال در مياد.
جالب اينجاست در همين هاست يه ديتابيس دارم که پشتيبانم از backup اي که من بهش داده بودم
و از طريق Restore اون ديتابيس رو ايجاد کرده بود.
که اطلاعات در همين جدول منو که در اون ديتابيس هم هست درست نشون داده ميشن.

حالا احتمال مي دم وقتي از طريق کنترل پنل هاست ابتدا ديتابيس خالي رو ايجاد مي کنم اون collation اش
arabic_ci_as نباشه.

هر راه ديگه اي هم به نظرتون مي رسه براي رفع اين مشکل خوشحال ميشم بشنوم.

alihassanabadi
دوشنبه 27 آذر 1391, 12:13 عصر
سلام

حالا احتمال مي دم وقتي از طريق کنترل پنل هاست ابتدا ديتابيس خالي رو ايجاد مي کنم اون collation اش
arabic_ci_as نباشه.
بله وقتی شما دیتابیس رو روی هاست میسازید Collation پیش فرض روی SQL_Latin ست میشه
علامت سوال مشکلی که من چند وقت پیش روی یکی از دیتابس های هاستی داشتم
1- شما Permission مورد نظر رو برای تغییر Collation به صورت Wizard ندارین مگه بهتون بدن
2- برای اطمینان از Sql server سیستمت به هاست وصل شو و امتحان کن
3- اگر داده از طریق برنامه اضافه شه مشکلی وجود نداره در صورتی که از پارامتر ها و حرف N استفاده کنی
به هر حال
برای بدست آوردن Collation

SELECT DATABASEPROPERTYEX('نام دیتابیس', 'Collation') Collation
و برای تغییر


USE master; GO ALTER DATABASE MyOptionsTest COLLATE French_CI_AS ; GO

موفق باشید.