我有大量查询
所以我不能通过规则在生产中使用链接服务器。
我传递了varchar(max)
,其中包含超过8000个字符。
但是sp_executesql
不支持超过8000个字符,那么我该如何执行我的字符串呢?
答案 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)
希望这会对你有所帮助