2011-10-09 2 views
1

연결된 서버의 사용자 정의 함수를 사용하는 이전의 스토어드 프로 시저를 상속 받았습니다. 호출 서버는 SQL Server 2008을 사용하고 연결된 서버는 SQL Server 2005와 2000 호환성을 사용합니다.연결된 서버에서 UDF를 호출하는 더 좋은 방법이 있습니까?

링크 된 서버에서 호출하는 UDF가 허용되지 않으므로 호출 서버에서 함수를 복제하는 것이 었습니다. 이 함수는 하나의 매개 변수를 사용하고 스칼라 int 값을 반환합니다. 그것은 저장 프로 시저의 선택 열 중 하나에서 사용됩니다

select 
columnA, 
columnB, 
fn_Function(columnC) as columnC_Alias 
from TableD 

이 모두 잘 작동하지만 연결된 서버에서 함수가 호출 서버에이 중복 인식의 사람에 의해 업데이트되는 경우 문제가 발생할 수 두 버전간에 불일치가 발생합니다.

링크 된 서버에서 함수를 캡슐화하기 위해 SP를 만드는 방법을 알고 있지만 여기서는 제대로 작동하지 않습니다.

더 좋은 방법이 있습니까?

+0

가 있습니까 당신은 그것에 매개 변수를 전달합니까? 귀하의 본보기가 없습니다. 그렇다면 좀 더 대표적인 예를 들어주십시오. – RBarryYoung

+0

예. 바로 그것과 스칼라 int 값을 반환, 너무 복잡합니다. – deutschZuid

+0

보기에서 해당 선택 문을 래핑하고 호출 서버의 SP에서 뷰를 호출 해 보았습니까? –

답변

0

당신이 전달하는 매개 변수의 값은 당신이보기에서 테이블과 UDF를 모두 마무리하고 SP 내에서 뷰를 참조 할 수있는 테이블에 종속되는 한 :

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