2012-11-05 4 views
3

SQL에서 사용할 수있는 CLR 해시 함수를 만들려고합니다.입력으로 SQL CLR 함수 행

내가하고자하는 것은 md5 checksum 행의 값을 계산하는 것입니다. 함수에 대한 입력이 행이어야한다고 어떻게 정의합니까? 예를 들어

는 SQL 네이티브 검사 기능을 사용하면로 호출 할 수 있도록 매개 변수로 '표현'을 취

나는 C#으로 정의하는 일 서명
Select CHECKSUM(*) From dbo.SomeTable 

그것으로 *을 취할 수 있도록 매개 변수?

+0

당신은 그것을 알아 냈습니까? 그것은 가능한가? – mishkin

+0

@mishkin : 아니요, 불가능합니다. 나는 더 많은 정보를 가지고 답을 추가했다. –

답변

3

아니요, SQLCLR에서는 불가능합니다.

SQLCLR 인터페이스, 즉 내부의 T-SQL 함수의 몇몇에서 발견되는 구조체의 일부를 허용하지 않는다 : 입력 파라미터
예로서

  1. "*"를 건네 : CHECKSUM (*)
    예 : BINARY_CHECKSUM (*)

  2. 동일한 기능 명

    선택 입력 파라미터

  3. : CONVERT (DATETIME '2013년 4월 20일', 101) CONVERT VS (DATETIME ' 201 3-04-20)
    예 : CHARINDEX ('O', '밥', 3) CHARINDEX 대 ('O', '밥')

  4. 동일한 함수명
    예를 들어 서로 다른 데이터 유형을 반환 : COALESCE (@VarcharVariable '검사') 본질적

VS COALESCE (@IntVariable 12) (DATETIME '2013년 4월 20일') CONVERT 대
예 (INT, '12') 변환 함수 이름의 오버로드가 없습니다.

+1

감사합니다. 그것이 udfs의 많은 유용성을 제거하기 때문에 혼란 스럽습니다. – Fragilerus