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

ang*_*gel 5 varchar sql-server-2005 large-data sp-executesql

我的查询量很大,因此无法按规则在生产中使用链接服务器。我通过了一个varchar(max)有8000个字符以上的字符。

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

My *_*eth 4

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
Run Code Online (Sandbox Code Playgroud)

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

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