我有带有链接 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')
我正在创建临时表,这就是我访问被拒绝的原因
关于sql - 使用 OPENQUERY 执行存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4159465/