我定义了一个varchar(max)
,但它正在截断字符串。
我已经搜索了解决方案,发现分配或附加到字符串的所有新值都应强制转换为varchar(max)
,但这仍然无济于事。
这是我的代码:
DECLARE @tr VARCHAR(MAX) = ''
SELECT
@tr = CAST(CAST(@tr AS VARCHAR(MAX)) +
CAST(ISNULL(CONCAT
(
'<tr>',
'<td class="dataline">',t.ComponentEquipmentNumber,'</td>',
'<td class="dataline">',t.ComponentDescription,'</td>',
'<td class="dataline">',t.ReceiverCustodian,'</td>',
'<td class="dataline">',t.[Location],'</td>',
'<td class="dataline">',t.ParentSystemNumber,'</td>',
'<td class="dataline">',t.ParentSystemLocation,'</td>',
'<td class="dataline">',t.RootSystemNumber,'</td>',
'<td class="dataline">',t.RootSystemLocation,'</td>',
'<tr/>'
),'') AS VARCHAR(MAX)) AS VARCHAR(MAX))
FROM
#TempFinal t
ORDER BY
EquipmentId
您可以看到我已经在各个级别上对VARCHAR(MAX)
进行了强制转换,只是为了使其起作用,但仍然没有起作用。
当我尝试打印字符串print len(@tr)
的长度时,它返回这个奇怪的数字76788
,它甚至不等于8000
的{{1}}个字符,得到这个数字的逻辑。
请帮助!