SQL CLR 函数返回可空布尔值

B.P*_*ter 3 .net c# sql-server nullable sqlclr

我正在尝试编写一个 SQLCLR 函数,它将返回一个可为空的布尔值。如果我像这样声明函数:public static SqlBoolean? IsTimeZoneDST(SqlString timeZone)那么在尝试使用程序集时会收到错误,指出返回值的类型不匹配。是否有我遗漏的东西,或者在这种情况下不可能返回可为空的布尔值?

Sol*_*zky 5

所有 .NETSql*类型都有一个.Null字段(静态属性),该字段创建一个新实例,该实例将被视为NULLT-SQL 中该数据类型的值。

此外,所有类型还有其他几个常见属性和方法Sql*

  • .IsNull测试该值是否NULL与 T-SQL 所关心的一样
  • .Value将返回等效的 .NET 数据类型,例如StringforSqlStringint/ Int32forSqlInt32等。

我认为,唯一需要使用 .NET 可空类型的情况是使用 T-SQLDATETIME2数据类型时,该数据类型映射到DateTimeDateTime?