sql - 使用 OPENQUERY 执行存储过程

标签 sql sql-server tsql sybase openquery

我有带有链接 Sybase 服务器的 SQL Server 2008,并且我正在尝试使用 OPENQUERY 在 Sybase 服务器上执行存储过程。如果我有一个不带参数的存储过程,它会成功。如果我有一个带有参数的存储过程,它就会失败。我什至尝试了一个非常基本的存储过程,只需要一个 int ,但仍然失败。以下是我正在使用的语法:

select * from 
OPENQUERY([LINKSERVER],'exec database.user.my_stored_proc ''AT'',''XXXX%'',''1111'',1')

消息 7357,第 16 级,状态 2,第 3 行 无法处理对象“exec database.user.my_stored_proc 'AT','XXXX%','1111',1”。链接服务器“LINKSERVER”的 OLE DB 提供程序“ASEOLEDB”指示该对象没有列,或者当前用户对该对象没有权限。

由于该过程无需参数即可正常执行,因此我认为这不是权限问题。

最佳答案

这对我有用,

SELECT * FROM OPENQUERY(LOCALSERVER, 'SET FMTONLY OFF EXEC snr.dbo.GetAllSignals @controlRunId = 25, @experimentRunId = 26')

我正在创建临时表,这就是我访问被拒绝的原因

这里有更多信息 http://www.sommarskog.se/share_data.html#OPENQUERY

关于sql - 使用 OPENQUERY 执行存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4159465/

相关文章:

php - 日期查询及显示

sql - 更新排他锁转换

sql - 如何在 SQL 中以随机顺序从表中选择列

sql-server - TSQL : TRY CATCH error handling with logging errors into a table

sql - 如何将此 T-SQL 代码转换为 PostgreSQL/plpgsql

sql - 获取相关文章的高级方法(语义)

mysql - 从具有相同结构的多个表中选择 SQL

php - 为什么错误 #1066 - 不唯一的表/别名 : 'cat_rapoarte'

c# - 在创建表 SQL Server 命令中引用默认值

sql - 根据 SQL 函数中的顺序对列进行排序