SQL CLR 函数到 return 可空布尔值
SQL CLR Function to return nullable boolean
我正在尝试编写一个 SQLCLR 函数,它将 return 一个可为 null 的布尔值。如果我这样声明函数:public static SqlBoolean? IsTimeZoneDST(SqlString timeZone)
那么我在尝试使用程序集时会收到错误消息,指出 return 值的类型不匹配。在这种情况下,我是否遗漏了什么或者不可能 return 可为空的布尔值?
谢谢朱哈尔。我知道我会错过一些简单的东西。如果其他人需要,答案是将声明更改为:public static SqlBoolean IsTimeZoneDST(SqlString timeZone)
然后在您需要时 return SqlBoolean.Null
所有 .NET Sql*
类型都有一个 .Null
字段(静态 属性),它创建一个新实例,该实例将被视为 NULL
值T-SQL.
中的那个数据类型
此外,所有 Sql*
类型还有其他几个常见的属性和方法:
.IsNull
就 T-SQL 而言,测试该值是否为 NULL
.Value
将 return 等效的 .NET 数据类型,例如 String
用于 SqlString
,或 int
/ Int32
用于SqlInt32
等
我认为,唯一需要使用 .NET 可空类型的时间是使用 T-SQL DATETIME2
数据类型,它映射到 DateTime
或 DateTime?
.
我正在尝试编写一个 SQLCLR 函数,它将 return 一个可为 null 的布尔值。如果我这样声明函数:public static SqlBoolean? IsTimeZoneDST(SqlString timeZone)
那么我在尝试使用程序集时会收到错误消息,指出 return 值的类型不匹配。在这种情况下,我是否遗漏了什么或者不可能 return 可为空的布尔值?
谢谢朱哈尔。我知道我会错过一些简单的东西。如果其他人需要,答案是将声明更改为:public static SqlBoolean IsTimeZoneDST(SqlString timeZone)
然后在您需要时 return SqlBoolean.Null
所有 .NET Sql*
类型都有一个 .Null
字段(静态 属性),它创建一个新实例,该实例将被视为 NULL
值T-SQL.
此外,所有 Sql*
类型还有其他几个常见的属性和方法:
.IsNull
就 T-SQL 而言,测试该值是否为NULL
.Value
将 return 等效的 .NET 数据类型,例如String
用于SqlString
,或int
/Int32
用于SqlInt32
等
我认为,唯一需要使用 .NET 可空类型的时间是使用 T-SQL DATETIME2
数据类型,它映射到 DateTime
或 DateTime?
.