繁体   English   中英

将sybase存储过程作为链接服务器过程SQL Server 2008执行

[英]Execute sybase stored procedure as linked server procedure sql server 2008

编辑


最终目标是通过Linked Server从SQL Server 2008中使用输入和输出参数调用sybase中托管的存储过程。


我认为标题很清楚。

我的目标是通过已经创建的链接服务器执行SQL Server 2008中Sybase SQL Anywhere 8中托管的存储过程。

通过链接服务器进行的任何SQL查询都可以正常工作。 另外,我能够执行一个函数,但是现在我不知道如何获得这样的返回值

EXEC ('CALL "dbname"."procedurename"(''param1'', ''param2'', ''param3'')') AT LinkedServerAlias;

谢谢4所有的帮助!

毛罗

可以使用四部分命名约定吗?

喜欢

exec LinkedServerName.dbname.dbo.procedurename @param1, @param2, @param3

我终于可以通过打电话来做到这一点

SELECT * FROM OPENQUERY([LinkedServer], 'SELECT "dbname"."spname"(@p1,@p2, @p3)')

我将在尝试后立即添加评论和示例。

4个部分对象名称仅对SQL Server链接服务器有效。

您必须将自己的EXEC放在OPENQUERY中

SELECT * FROM OPENQUERY([LinkedServer], 'EXEC MyDB.MyScheme.MyProc.spname @p1, @p2, @p3')

现在,您无法参数化OPENQUERY调用,因此您已使用动态SQL

DECLARE @sql nvarchar(4000), @linkedsql nvarchar(4000)

SET @sql = 'EXEC MyDB.MyScheme.MyProc.spname ' + CAST(@p1value as int) + ...
SET @linkedsql = 'SELECT * FROM OPENQUERY(LinkedServer, ''' + @sql + ''')'

EXEC (@linkedsql)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM