2010-12-14 184 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