7

我有大量查询,所以我不能按规则在生产中使用链接服务器。我通过了一个varchar(max)超过 8000 个字符的。

sp_executesql不支持超过 8000 个字符,那么我该如何执行我的字符串?

4

2 回答 2

3

nvarchar(max)应该适用于 SQL Server 2008 或更高版本。

这行得通吗?:

declare @sql nvarchar(max)
set @sql = N'select' + CONVERT(NVARCHAR(MAX),REPLICATE(' ', 8000)) + ' ''Above 8000 character limit test'''
exec sp_executesql @sql

如果您使用的是之前的版本,则可能需要将查询拆分为多个变量:

如何在 SQL server 2005 存储过程中使用大于 4000 个字符的 SQL 字符串变量?

于 2013-10-02T14:38:14.363 回答
0

您是否尝试过声明类似

declare  @var_1 nvarchar(4000);
declare  @var_2 nvarchar(4000);
         .
         .
         .
declare @var_n nvarchar(4000);

所以你做这样的事情

exec(@var_1 + @var_2 + ....+ @var_n) 

希望这会帮助你

于 2013-12-18T14:28:52.090 回答