2010-12-14 155 views
1

我有一个存储过程如下:SQL 2005为nvarchar(最大)的问题

DECLARE @TSQL NVARCHAR(MAX) 

SET @TSQL = N'.....' Which contains about 33000 characters of text 

当我做了PRINT LEN(@TSQL) 7968返回。为什么切断@TSQL的其余部分?

+0

你似乎错过了'DECLARE'中的变量名。 – Oded 2010-12-14 10:45:58

+0

是的,你说得对,我添加了它。 – fARcRY 2010-12-14 10:47:23

回答

3

确保当您连接一切都是为nvarchar(最大)

看看这个

DECLARE @n NVARCHAR(MAX) 
SELECT @n = REPLICATE(convert(varchar(max),'A'),300000) 

select LEN(@n), DATALENGTH(@n) 
GO 

--300000 600000

DECLARE @n NVARCHAR(MAX) 
SELECT @n = REPLICATE('A',300000) 

select LEN(@n), DATALENGTH(@n) 

--8000 16000