如何分析SQLServer中的Scanf和Printf?我相信很多没有经验的人对此无能为力。为此,本文总结了问题产生的原因及解决方法。希望你能通过这篇文章解决这个问题。
SQLServer中有两个扩展存储过程来实现Scanf和Printf的功能。正确使用它们可以大大简化提取和拼接字符串时的SQL代码。1.xp_sscanf可以用来分解格式相对固定的字符串,对于厌倦了使用一堆substring和charindex的朋友来说是不错的选择。比如在前几天的一篇帖子中,如何分解ip地址,相对简洁和通用的代码应该如下。
代码如下:
如果(object_id ('f_getip ')不为null)删除函数f_getip go创建函数dbo。f_getip (@ ip varchar (100))返回@ t表(a int,b int,c int,d int)作为begin set @ ip=replace (@ ip,'。 ' ' )
声明@ s1 varchar (3)、@ s2 varchar (3)、@ s3 varchar (3)、@ s4 varchar (3 ) exec xp_sscanf @ ip,
%s %s %s %s ',
@ s1输出,@ s2输出,@ s3输出,@ s4输出插入
@ t从dbo中选择@ s1、@ s2、@ s3、@ s4返回结束go select *。f_getip ('192.168.0.1' )go /* a b c d
- - - - 192 168 0 1 */
2.xp_sprintf,它可以用来拼接字符串,而不用担心过多的加号难以控制,例如动态执行sql语句的存储过程。
代码如下:
如果(object_id ('p_select ')不为空)删除进程p_select转到创建进程p_select (@ tb varchar (100),
@ cols varchar (100),
@ wherecol varchar (100),
@ value varchar (100))作为begin声明
@ s varchar(8000)exec XP _ sprintf @ s输出,
从%s中选择%s,其中%s=''%s ' ',
@ cols,@ tb,@ wherecol,@ value exec(@ s)end go exec p _ select ' sysobjects ',' id,xtype,crdate ',' name ',' p_select' /* id xtype crdate
----898102240 P 2009-08-18 03:01336051.153 */
看完以上内容,你是否掌握了如何在SQLServer中分析Scanf和Printf?如果您想学习更多技能或了解更多相关内容,请关注行业资讯频道,感谢您的阅读!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/153557.html