Tsql 有没有更好的方法从链接服务器调用UDF?

Tsql 有没有更好的方法从链接服务器调用UDF?,tsql,sql-server-2008-r2,Tsql,Sql Server 2008 R2,我从以前的对应方继承了一个存储过程,该存储过程使用链接服务器的用户定义函数。调用服务器使用sql server 2008,链接服务器使用sql server 2005,并与2000兼容 由于不允许从链接服务器调用UDF,他所做的就是在调用服务器上复制该函数。该函数接受一个参数并返回一个标量int值。它用于存储过程中的一个select列: select columnA, columnB, fn_Function(columnC) as columnC_Alias from TableD 这一切

我从以前的对应方继承了一个存储过程,该存储过程使用链接服务器的用户定义函数。调用服务器使用sql server 2008,链接服务器使用sql server 2005,并与2000兼容

由于不允许从链接服务器调用UDF,他所做的就是在调用服务器上复制该函数。该函数接受一个参数并返回一个标量int值。它用于存储过程中的一个select列:

select 
columnA,
columnB,
fn_Function(columnC) as columnC_Alias
from TableD
这一切都可以正常工作,但如果链接服务器上的函数被某个不知道调用服务器上的重复情况的人更新,则可能会出现问题,从而导致两个版本之间的不一致

我知道在链接服务器上创建SP来封装函数的方法,但在这里它不太管用


有更好的方法吗?

只要传递的参数值取决于表,就可以将表和UDF包装在视图中,并从SP中引用视图:

CREATE VIEW ViewD AS
SELECT columnA,
       columnB,
       columnC_Alias = fn_Function(columnC)
FROM   TableD

您正在向它传递参数吗?你的例子没有。如果是这样,请给我们一个更具代表性的例子。是的。只有一个,它返回一个标量int值,并不复杂。您是否尝试过将select语句包装到视图中,并从调用服务器中的SP调用该视图?@Lasse V.Karlsen:我认为这是一个建议,而不仅仅是一个问题,即使它看起来像一个问题。