我有一个关于 Transcat SQL 的问题,下面是 sql 代码;
DECLARE @main nVARCHAR(max);
--there are over 4000 characters to @main
set @main = '01234567890123456789...';
Print len(@main)
@main 的长度是正确的,例如 4007 但是,如果我将代码更改为以下:
DECLARE @main nVARCHAR(max);
--there are over 4000 characters to @main
set @main = N'01234567890123456789...';
Print len(@main)
@main 的长度总是 4000,这很奇怪,我不明白。另一件事是,如果我将代码更改为以下内容:
DECLARE @main nVARCHAR(max), @split nVARCHAR(500);
--there are 500 characters to @split
set @split = '01234567890123456789...';
set @main = @split + @split + @split + @split + @split + @split + @split + @split + @split + @split;
Print len(@main)
@main 的长度是 4000,为什么?无论我在'01234567890123456789...'之前添加字母N吗?如果我将@split 更改为 varchar(500) DECLARE @main nVARCHAR(max), @split VARCHAR(500);
--there are 500 characters to @split
set @split = '01234567890123456789...';
-- 10 @split
set @main = @split + @split + @split + @split + @split + @split + @split + @split + @split + @split;
Print len(@main)
@main 的长度是正确的,不管我在 ''01234567890123456789...' 前加字母 N 与否,@main 的长度总是 5000