1

我有一个存储过程(sql2005),它需要在远程服务器(sql2000)上调用一个表值函数。

我的查询如下:

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) 

我在“cast”附近收到不正确的语法错误。是否可以使用这种表示法执行 tvf?我应该以某种方式使用openrowset吗?任何帮助表示赞赏。

4

1 回答 1

3

这是官方的说法。您不能以这种方式调用 UDF。

http://connect.microsoft.com/SQLServer/feedback/details/276758/remote-table-valued-function-calls-are-not-allowed

不过,看起来 Mircosoft 正在开发未来版本的功能。

于 2011-05-11T18:31:02.957 回答