如何将大于 NVARCHAR(MAX) 的字符串保存到本地 T-SQL 变量中



我有一个非常巨大的结果,需要以HTML的形式提供。

这是查询:

DECLARE @N_Data NVARCHAR(MAX) = ''
SET @N_Data = 
            (SELECT 
                '<td>' + N_code + '</td>'
                + '<td>' + N_Title + '</td>'
                + '<td>' + N_Description + '</td>'
            FROM NTable             
            ORDER BY N_code                 
            FOR XML PATH('tr'))
SELECT @N_Data

我知道这不是获取数据的最佳方式。假设我在某些情况下限制了我仅使用此方法的选择。

因此,当我检查结果时,它不会显示所有内容,因为结果字符串大于NVARCHAR(MAX)

我知道局部变量不允许使用 TEXTNTEXT 数据类型。

知道如何解决这个问题吗?

nvarchar(max( 不谈,字符串连接引起了我的注意。

也许是另一种方法

Declare @YourTable table (ID int,N_Code varchar(25),N_Title varchar(50),N_Description varchar(50))
Insert Into @YourTable values
(1,'ABC','Title For ABC','Description for ABC and some additional text'),
(1,'123','Title For 123','Description for 123 and more text')
Declare @N_Data nvarchar(max) = (
Select  td=N_Code
       ,null
       ,td=N_Title
       ,null
       ,td=N_Description
 From @YourTable
 Order By N_Code
 For XML Path('tr')
)
Select @N_Data

返回

<tr>
  <td>123</td>
  <td>Title For 123</td>
  <td>Description for 123 and more text</td>
</tr>
<tr>
  <td>ABC</td>
  <td>Title For ABC</td>
  <td>Description for ABC and some additional text</td>
</tr>

最新更新