我试图编写一个返回可以为空的布尔值的SQLCLR函数。如果我声明这样的函数:]
然后我在尝试使用程序集时出错,说返回值的类型不匹配。是否有我遗漏的东西或者在这个实例中是否无法返回可以为空的布尔值?
答案 0 :(得分:2)
所有.NET Sql*
类型都有一个.Null
字段(静态属性),它在T-SQL中为该数据类型创建一个新的NULL
值实例
此外,所有Sql*
类型还有其他一些常见属性和方法:
.IsNull
来测试关于T-SQL的值是NULL
.Value
将返回等效的.NET数据类型,例如String
的{{1}}或SqlString
的{{1}} / int
,等我相信,您应该使用.NET可空类型的唯一时间是使用T-SQL Int32
数据类型,该数据类型映射到SqlInt32
或DATETIME2
答案 1 :(得分:0)
谢谢juharr。我知道我会遗漏一些简单的东西。其他人需要的答案是将声明更改为:public static SqlBoolean IsTimeZoneDST(SqlString timeZone)
,然后在需要时return SqlBoolean.Null