[英]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.