是否有可能在SQLserver 2005中创建一个存储无限字符的变量?

时间:2009-05-29 04:02:07

标签: tsql

我写了一些T-SQL,它将我的所有字符串连接在一起,但nvarchar(max)不足以存储它。

还有其他办法吗?

我正在尝试使用的代码是:

DECLARE @codes NVARCHAR(max) 
SET @codes = '' 
SELECT @codes = @codes + ',' + CONVERT(nvarchar,code) 
FROM dbo.listing SELECT @codes

4 个答案:

答案 0 :(得分:3)

无限,没有。在某些时候,你将耗尽存储空间。说真的,如果你发现自己创造了不适合大约2 31 字节的单个元素,那么你做错了。

为什么不告诉我们您要解决的“真实”问题?没有先入为主的观念,你必须以某种方式去做。

答案 1 :(得分:0)

如果你不担心国际角色,我能想到的唯一建议就是使用varchar(max)。但这并不会给你带来大量的存储容量增长。

它必须是一个非常庞大的SQL字符串,但它不适合。

答案 2 :(得分:0)

您需要将代码列强制转换为nvarchar(max),否则它将截断:

DECLARE @codes NVARCHAR(max) 
SET @codes = '' 
SELECT @codes = @codes + ',' + CONVERT(nvarchar**(max)**,code) 
FROM dbo.listing SELECT @codes

答案 3 :(得分:0)

你打算用这个糟糕的变量做什么?为什么不直接在表中写一个连接?