用于返回可为空的布尔值的 SQL CLR 函数



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

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

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

  • .IsNull测试值是否NULL T-SQL
  • .Value将返回等效的 .NET 数据类型,例如SqlStringString,或SqlInt32int/Int32 等。

我相信,唯一需要使用 .NET null 类型的情况是使用 T-SQL DATETIME2数据类型时,该数据类型映射到 DateTimeDateTime?

谢谢朱哈尔。我知道我会错过一些简单的东西。如果其他人需要它,答案是将声明更改为:public static SqlBoolean IsTimeZoneDST(SqlString timeZone),然后在您需要时return SqlBoolean.Null

最新更新