首页 > 数据库 > mysql教程 > 如何修复带变量的 OPENROWSET 查询中的'' '附近语法不正确”错误?

如何修复带变量的 OPENROWSET 查询中的'' '附近语法不正确”错误?

Susan Sarandon
发布: 2025-01-03 22:53:41
原创
839 人浏览过

How to Fix

使用变量对 OPENROWSET 查询进行故障排除

使用 OPENROWSET 函数访问外部数据时,如果在变量表达式中包含变量表达式,则可能会遇到错误查询字符串。此类示例之一是错误“‘ ’附近的语法不正确。”当您尝试将变量与 OPENROWSET 语句连接时,会发生这种情况,如以下查询所示:

SELECT * 
FROM OPENROWSET(
    'SQLNCLI',
    'DRIVER={SQL Server};',
    'EXEC dbo.sProc1 @ID = ' + @id 
 )
登录后复制

在此查询中,变量 @id 使用 ' ' 运算符附加到 EXEC 语句。但是,OPENROWSET 不支持在其查询字符串中使用表达式。

解决方案:

要解决此问题,您不能直接在 OPENROWSET 查询中使用变量。相反,您可以创建动态 SQL 来传递参数。下面是一个示例:

Declare @ID int
Declare @sql nvarchar(max)
Set @ID=1
Set @sql='SELECT * 
FROM OPENROWSET(
               ''SQLNCLI'',
               ''DRIVER={SQL Server};'',
               ''EXEC dbo.usp_SO @ID =' + convert(varchar(10),@ID) + ''')'

-- Print @sql
 Exec(@sql)
登录后复制

在此解决方案中,我们定义变量 @sql 来保存动态 SQL 查询,并使用 CONVERT() 函数连接变量 @ID。这允许我们使用所需的参数执行动态 SQL 语句。

以上是如何修复带变量的 OPENROWSET 查询中的'' '附近语法不正确”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板