一个VARCHAR和一个NVARCHAR相加

别人问的问题:

DECLARE @n NVARCHAR(100)
SELECT @n = 'xxx'
DECLARE @v VARCHAR(5000)
SELECT @v = '(2000个字符)' + @n + '(又2000个字符)'
SELECT DATALENGTH(@n)


SELECT @n = 'xxx'进行一次VARCHAR-->NVARCHAR的转换
应为SELECT @n = N'xxx'
SELECT @v = '...(2000个字符)...' + @n + '...(又2000个字符)...'将两个'...(2000个字符)...'转换为NVARCHAR, 然后再转成VARCHAR(5000)
但是在转换以前结果字符串已经超出了4000, 所以@v得到的是一个截断的只有4000的字符串


posted @ 2006-08-15 11:20  光阴四溅  阅读(449)  评论(0编辑  收藏  举报