针对链接服务器的 OPENQUERY 限制为 8000 个字符

Sal*_*us2 11 sql-server ssrs linked-server sql-server-2014

我有一个我试图OPENQUERY在 SSRS/SQL Server 2014 上运行的查询,但我不断收到以下错误:

以 [...] 开头的字符串太长。最大长度为 8000。

有什么办法可以解决这个限制吗?

作为参考,我正在尝试通过链接的 MySQL 服务器从 SSRS 运行查询。

Joh*_*ner 17

您可以绕过的8000个字符的限制OPENQUERY,利用EXECUTE AT,具体如下:

DECLARE @myStatement VARCHAR(MAX)
SET @myStatement = 'SELECT * FROM TABLE WHERE CHARACTERS.... ' -- Imagine that's longer than 8000 characters

EXECUTE (@myStatement) AT LinkedServerName
Run Code Online (Sandbox Code Playgroud)

为了确保这不会引发错误,您需要RPC OUT通过发出以下命令在链接服务器上启用该选项:

EXEC master.dbo.sp_serveroption @server=N'LinkedServerName', @optname=N'rpc out', @optvalue=N'true'
Run Code Online (Sandbox Code Playgroud)

或者在 GUI 中启用它:

在此处输入图片说明