2017-03-20 12 views
1

nullable 부울 값을 반환하는 SQLCLR 함수를 작성하려고합니다. 다음과 같은 함수를 선언하면 : public static SqlBoolean? IsTimeZoneDST(SqlString timeZone) 그러면 반환 값의 형식이 일치하지 않는다고 말하는 어셈블리를 사용할 때 오류가 발생합니다. 누락 된 항목이 있습니까? 아니면이 인스턴스에 nullable Boolean을 반환 할 수 있습니까?SQL CLR nullable 부울을 반환하는 함수

+4

''SqlBoolean'은 이미''SqlBoolean.IsNull' (https://msdn.microsoft.com/en-us/library/system.data.sqltypes)을 사용하여 "null"이 될 수 있습니다. .sqlboolean.isnull (v = vs.110) .aspx) 속성. – juharr

+0

어셈블리를 어떻게 사용하려고합니까? 오류를 throw하는 코드와 정확한 오류를 게시하십시오. – BeanFrog

답변

1

Sql* 유형은 .Null 필드 (정적 속성)을 가지고있는 .NET의 모든 것을 의지 T-SQL 내에서 해당 데이터 유형에 대해 NULL 값으로 간주됩니다. 값이 NULL은 지금까지 T-SQL은을 우려하고있다

  • .Value가 반환됩니다 경우

    • .IsNull 테스트 : 또한

      , 여러 가지 다른 일반적인 속성과 Sql* 모든 유형의 방법이 있습니다 등 SqlString위한 String 또는 SqlInt32위한 int/Int32,

    같은 등가 .NET 데이터 유형,

    .NET nullable 형식을 사용해야하는 유일한 경우는 T-SQL DATETIME2 데이터 형식을 사용할 때입니다 (DateTime 또는 DateTime? 중 하나로 매핑 됨).

  • 0

    감사합니다. juharr. 나는 내가 간단한 것을 놓치고있을 줄 알았다. 경우 사람의 대답은 그렇지가 선언을 변경하는 것입니다 필요가있다 : 당신이 필요로 할 때 다음 public static SqlBoolean IsTimeZoneDST(SqlString timeZone)과의 새로운 인스턴스를 생성 return SqlBoolean.Null