我有一个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
字符VARCHAR(MAX)
,没有得到这个数字的逻辑。
请帮忙!