Varchar و Char يتصرفان مختلفان على الممثلين
-
27-09-2019 - |
سؤال
لماذا يختلف الإخراج عن هذا الاستعلام
SELECT DATALENGTH(CAST('test' AS VARCHAR)), DATALENGTH(CAST('test' AS CHAR))
انتاج:
4,30
المحلول
يضبط Varchar دائمًا على طول السلسلة التي تم تمريرها. وبالتالي الناتج هو 4.
لدى Char طول افتراضي 30 وبالتالي الناتج هو 30.
نصائح أخرى
لان "عندما لا يتم تحديد N عند استخدام وظائف CAST وتحويلها ، يكون الطول الافتراضي 30". ولكن عندما يتم تطبيق طول datal on a varchar ، فإنه يتجاهل المساحات الخلفية ، بينما بالنسبة لحقل char يكون الطول مجرد حجم الحقل نفسه.
لا تنتمي إلى StackOverflow