sp_executesql或exec(@var)太长了。最大长度为8000

时间:2013-10-02 14:28:37

标签: sql-server-2005 varchar sp-executesql large-data

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

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

2 个答案:

答案 0 :(得分:2)

nvarchar(max)应该适用于SQL Server 2008或更高版本。如果您之前使用的是某个版本,则可能需要将查询拆分为多个变量:http://social.msdn.microsoft.com/Forums/sqlserver/en-US/c26b1e1e-5900-43da-b462-02b1550bcfc3/how-to-use-sql-string-variable-larger-than-4000-character-in-sql-server-2005-stored-procedure

这有效吗?:

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

答案 1 :(得分:1)

您是否尝试声明类似

的内容
declare  @var_1 nvarchar(4000);
declare  @var_2 nvarchar(4000);
         .
         .
         .
declare @var_n nvarchar(4000);

所以你做这样的事情

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

希望这会对你有所帮助