1

我有一个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),没有得到这个数字的逻辑。

请帮忙!

4

0 回答 0