سؤال

لقد قمت للتو بتثبيت Microsoft SQL Server 2008 R2 للاختبار مع LINQ إلى SQL.

لدي جدول مع عمود واحد من النوع NCHAR (20) وصفين: "123" و "اختبار".

إذا قمت بالاستعلام عن جميع الصفوف من هذا الجدول ولف كل قيمة بـ "" "أحصل على ما يلي:

'123 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ' ( _ is a space)

'Test _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ' ( _ is a space)

يبدو أن SQL Server يملأ المساحة غير المستخدمة (لأن العمود عبارة عن 20 بايت NCHAR) مع مسافات.

ماذا يمكنني أن أفعل لمنع حدوث ذلك؟

هل كانت مفيدة؟

المحلول

استخدم nvarchar بدلا من NCHAR. NCHAR هو حقل عرض ثابت مليء بالمسافات ، كما ترى.

نصائح أخرى

تغيير نوع العمود إلى nvarchar.

نرى NCHAR و NVARCHAR.

انت تحتاج nvarchar, ، إنه مرن.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top