1

我有一個存儲過程(sql2005)需要調用遠程服務器上的表值函數(sql2000)。如何遠程執行Sql-Server 2000/5中的表值函數?

我的查詢如下:

select 
    * 
from 
    mytable mt 
    cross apply 
     opendatasource('sqloledb','Data Source=remoteserver;UID=user;Password=pass').mydatabase.dbo.mytvf 
     (cast(param1 as numeric(20,0)), @param2, mt.param3) 

我發現了一個不正確的語法錯誤附近「投」。用這個表示法可以執行一個tvf嗎?我應該以某種方式使用openrowset?任何幫助表示讚賞。

+0

我不是積極的,這就是爲什麼我沒有列出答案,但我認爲你需要指定WITH NOLOCK以防止遠程服務器阻塞。你很容易被髒讀,但這可能是問題。 – RThomas 2011-05-11 18:15:21

+0

我從哪裏開始?選擇*從mytable mt(nolock)? – IronicMuffin 2011-05-11 18:16:33

+0

可以做一個TVD的opendatasource嗎? – IronicMuffin 2011-05-11 18:17:37

回答