我继承了我以前的对手的存储过程,它使用来自链接服务器的用户定义函数。调用服务器使用sql server 2008,链接服务器使用sql server 2005兼容2000。
由于不允许从链接服务器调用UDF,他所做的是在调用服务器上复制该函数。该函数接受一个参数并返回标量int值。它用于存储过程中的一个选择列:
select
columnA,
columnB,
fn_Function(columnC) as columnC_Alias
from TableD
这一切都运行正常,但如果链接服务器上的功能被不知道调用服务器上的这种重复的人更新,则会出现问题,从而导致两个版本之间的不一致。
我知道在链接服务器上创建SP以封装该函数的方法,但它在这里并不常用。
有更好的方法吗?
答案 0 :(得分:0)
只要您传递的参数值取决于表,您就可以在视图中包装表和UDF,并从SP中引用该视图:
CREATE VIEW ViewD AS
SELECT columnA,
columnB,
columnC_Alias = fn_Function(columnC)
FROM TableD