簡體   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