PDA

View Full Version : CHAR و VARCHAR



Elham_gh
دوشنبه 20 اسفند 1386, 09:55 صبح
هممون می دونیم فرق CHAR با VARCHAR چیه. حالا کد زیر رو ببنید:


DECLARE @a CHAR(20)
DECLARE @b VARCHAR(20)
SET @a=' This is Test '
SET @b=' This is Test '

SELECT LEN(@a),LEN(@b)


فکر می کنید خروجی اون چیه؟

من علت این خروجی رو نفمیدم.کسی می دونه؟

AminSobati
دوشنبه 20 اسفند 1386, 10:19 صبح
دوست عزیزم،
Books Online این موضوع رو در مورد تابع LEN توضیح داده:


Returns the number of characters, instead of the number of bytes, of the given string expression, excluding trailing blanks


اگر دقیقا تعداد بایتهای اشغال شده رو نیاز دارین:


DECLARE @a CHAR(20)
DECLARE @b VARCHAR(20)
SET @a=' This is Test '
SET @b=' This is Test '

SELECT LEN(@a),LEN(@b)
SELECT DATALENGTH(@a),DATALENGTH(@b)

Elham_gh
دوشنبه 20 اسفند 1386, 10:26 صبح
ممنون
اما در SQL Server 2000 هم همینطور عمل می کرد؟

AminSobati
دوشنبه 20 اسفند 1386, 10:36 صبح
در 2000 هم همین رفتار بوده:
http://msdn2.microsoft.com/en-us/library/aa933234(SQL.80).aspx

Elham_gh
دوشنبه 20 اسفند 1386, 11:08 صبح
پس عجیبه که به این نکته دقت نکرده بودم.در هر صورت ممنون. :)