欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » Sql随手笔记 » 正文

热门阅读

参数数据类型sql_variant对于like函数的参数1无效的解决方法

创建时间:2012年07月30日 15:38  阅读次数:(16778)
分享到:
出现这个错误的原因是因为我们对sql_varian类型的字段进了like搜索,而sql_varian类型的字段是不支持like搜索的。比如,我们对sys.extended_properties系统视图的value字段进行模糊搜索,sql命令如下:
select * from sys.extended_properties where [value] like '%销售%'

执行上面语句就会报出"参数数据类型 sql_variant 对于 like 函数的参数 1 无效的错误"。那么我们要如何去解决这个问题呢?总不能因为sql_varian类型的字段不支持like搜索,我们就不对sys.extended_properties的value字段进行搜索吧,而在实际中,这个字段经常需要进行模糊搜索。

正确的解决方法是,将sql_varian类型在where条件中转化为varchar类型再进行搜索就可以了,比如还是对sys.extended_properties进行模糊搜索的例子,我们将sql语句改成下面这样,再执行就不会报错了:
select * from sys.extended_properties where cast([value] as varchar(1000)) like '%销售%'

执行修改后的命令,查询出来了正确的结果。

那么为什么sql_variant类型会不支持Like搜索呢?
这是因为sql_variant一种特殊的数据类型,它可以用于存储 SQL Server 2005支持的各种数据类型(但不包括 text、ntext、image、timestamp 和 sql_variant)的值。也就是说,它是一个不确定的数据类型,如果我们要对它加减或其它运算,必须先将它转换为其基本数据类型值,再来操作。这也就解决了为什么sql_variant类型不能进行like搜索的原因了。
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论2条
  • #1楼  评论人:匿名  评论时间:2012-7-31 11:12:11
  • 为什么会需要这样的数据类型呢?
  • #2楼  评论人:匿名  评论时间:2012-7-31 11:12:33
  • 还是第一次见到
发表评论:
留言人:
内  容:
请输入问题 67+99=? 的结果(结果是:166)
结  果: