首页 >数据库 >mysql教程 >如何在 SQL Server 中使用 OPENQUERY 参数?

如何在 SQL Server 中使用 OPENQUERY 参数?

Susan Sarandon
Susan Sarandon原创
2025-01-14 12:41:44956浏览

How Can I Use Parameters with OPENQUERY in SQL Server?

在OPENQUERY中使用参数

OPENQUERY是访问链接服务器数据的强大工具,但将参数合并到查询中可能具有挑战性。文档明确指出OPENQUERY不接受其参数的变量。

解决方法:

为了克服此限制,可以使用几种解决方法:

  • 传递基本值:对于需要传入特定值的简单情况,请使用类似以下的代码:
<code class="language-sql">DECLARE @TSQL varchar(8000), @VAR char(2)
SELECT @VAR = 'CA'
SELECT @TSQL = 'SELECT * FROM OPENQUERY(MyLinkedServer,''SELECT * FROM pubs.dbo.authors WHERE state = ''''' + @VAR + ''''''')'
EXEC (@TSQL)</code>
  • 传递整个查询:当需要传入完整的查询或链接服务器名称时,请使用类似以下的代码:
<code class="language-sql">DECLARE @OPENQUERY nvarchar(4000), @TSQL nvarchar(4000), @LinkedServer nvarchar(4000)
SET @LinkedServer = 'MyLinkedServer'
SET @OPENQUERY = 'SELECT * FROM OPENQUERY('+ @LinkedServer + ','''
SET @TSQL = 'SELECT au_lname, au_id FROM pubs..authors'')'
EXEC (@OPENQUERY+@TSQL)</code>
  • 使用Sp_executesql存储过程:为了简化代码并避免多层引号,请使用以下方法:
<code class="language-sql">DECLARE @VAR char(2)
SELECT @VAR = 'CA'
EXEC MyLinkedServer.master.dbo.sp_executesql
N'SELECT * FROM pubs.dbo.authors WHERE state = @state',
N'@state char(2)',
@VAR</code>

以上是如何在 SQL Server 中使用 OPENQUERY 参数?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn