如何在 Sql-Server 2000/5 中远程执行表值函数?
我有一个存储过程(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 吗?任何帮助表示赞赏。
I have a stored procedure (sql2005) that needs to call a table valued function on a remote server (sql2000).
My query is as follows:
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)
I'm getting an incorrect syntax error near 'cast'. Is it possible to execute a tvf with this notation? Should I somehow be using openrowset? Any help is appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是官方的话。您不能以这种方式调用 UDF。
http://connect .microsoft.com/SQLServer/feedback/details/276758/remote-table-valued-function-calls-are-not-allowed
看来 Mircosoft 正在努力在未来版本中开发该功能。
Here's the official word. You cannot call a UDF in this way.
http://connect.microsoft.com/SQLServer/feedback/details/276758/remote-table-valued-function-calls-are-not-allowed
Looks like Mircosoft is working on the ability in a future version though.