我写了一些T-SQL,它将我的所有字符串连接在一起,但nvarchar(max)
不足以存储它。
还有其他办法吗?
我正在尝试使用的代码是:
DECLARE @codes NVARCHAR(max)
SET @codes = ''
SELECT @codes = @codes + ',' + CONVERT(nvarchar,code)
FROM dbo.listing SELECT @codes
答案 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)
你打算用这个糟糕的变量做什么?为什么不直接在表中写一个连接?