2014-03-30 6 views
0

주제에 대해 너무 많이 읽은 후에는 UDF를 작성하는 방법을 알지 못합니다. 내가 필요로하는 대신 같은 여러 가지 다른 스크립트()에서 여러 번 교체 중첩 작성Basic SQL UDF 생성

, 내가 그것을 호출 할 수 싶습니다, 뭔가 같은 :

Targ.Name = dbo.fn_add_sym(isnull(Targ.Name, Src.Name)) 

내가 가지고있는 다음과 같은 기능을하지만, 나는 그것을 어디에 넣을 지 모르기 때문에 그것을 시험 할 수 없었다.

CREATE FUNCTION dbo.fn_add_sym(@string NVARCHAR(max)) 
RETURNS NVARCHAR(max) 
WITH SCHEMABINDING 
AS 
begin 
return 
    @string = REPLACE(
       REPLACE(
       REPLACE(
        REPLACE(
        REPLACE(
         REPLACE(@string, N'%2b', N'+') 
        , N'%2d', N'-') 
        , N'%3d', N'=') 
       , N'%22', N'"') 
       , N'%5f', N'_') 
      ,'"', N'"') 

end 
+0

질문을 MySQL과 SQL Server로 태그 지정했습니다. 어떤거야? – Szymon

+0

정확히 어떻게 사용 하시겠습니까? – Szymon

+0

쿼리가 SQL Server 구문 인 것으로 보이므로 mysql 태그가 제거되었습니다. –

답변

1

는 기능을 보여주는 Fiddle입니다. 당신이 가지고있는 유일한 구문 오류가 return @string =했다

select dbo.fn_add_sym('abc%5fdef') 

:

다음

그것을 테스트하는 몇 가지 코드입니다. @string =은 불필요합니다.

+0

감사합니다! 내가 놓친 부분은 db에 추가하기 위해 함수를 단독으로 실행해야한다는 것입니다. DOH !!!!! :) –