浅析SQLServer中的Scanf与Printf

 更新时间:2013年06月26日 17:58:24   作者:  
本篇文章是对SQLServer中的Scanf与Printf进行了详细的分析介绍,需要的朋友参考下
SQLServer中有两个扩展存储过程实现Scanf和Printf功能,恰当的使用它们可以在提取和拼接字符串时大幅度简化SQL代码。

1、xp_sscanf,用它可以分解格式相对固定的字符串,这对于厌倦使用一堆substring和charindex的朋友来说不错。比如前几天的一个帖子中提出的如何分解ip地址,相对简练且通用的代码应该是下面这样
复制代码 代码如下:

if (object_id ('f_getip' ) is not null )
drop function f_getip
go
create function dbo . f_getip (@ ip varchar (100 ))
returns @ t table (a int , b int , c int , d int )
as
begin
    set @ ip = replace (@ ip , '.' , ' ' )
    declare
    @ s1 varchar (3 ) , @ s2 varchar (3 ),
    @ s3 varchar (3 ) , @ s4 varchar (3 )
    exec xp_sscanf @ ip , '%s %s %s %s' , @ s1 output , @ s2 output , @ s3 output , @ s4 output
    insert into @ t select @ s1 , @ s2 , @ s3 , @ s4
    return
end
go
select * from dbo . f_getip ('192.168.0.1' )
go
/*
a           b           c           d
----------- ----------- ----------- -----------
192         168         0           1
*/

2、xp_sprintf,用它可以拼接出一个字符串而不用担心过多的加号很引号难以控制,比如一个动态执行sql语句的存储过程
复制代码 代码如下:

if (object_id ('p_select' ) is not null )
drop proc p_select
go
create proc p_select (@ tb varchar (100 ), @ cols varchar (100 ), @ wherecol varchar (100 ), @ value varchar (100 ))
as
begin
    declare @ s varchar (8000 )
    exec xp_sprintf @ s output , 'select %s from %s where %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:01:51.153
*/

相关文章

  • sql编程的几个常识

    sql编程的几个常识

    sql编程的几个常识...
    2006-08-08
  • sql server 表结构修改方法

    sql server 表结构修改方法

    如果我们需要修改sql server表结构,应该怎么做呢?接下来将为您介绍修改sql server表结构的方法,需要的朋友可以参考下
    2012-11-11
  • 理解SQL SERVER中的逻辑读,预读和物理读

    理解SQL SERVER中的逻辑读,预读和物理读

    在我的上一篇关于SQL SERVER索引的博文,有圆友问道关于逻辑读,预读和物理读的概念.我觉的还是写一篇博文能把这个问题解释清楚
    2011-12-12
  • SqlServer2012中LEAD函数简单分析

    SqlServer2012中LEAD函数简单分析

    SQL SERVER 2012 T-SQL新增几个聚合函数: FIRST_VALUE LAST_VALUE LEAD LAG,今天我们首先来简单分析下LEAD,希望对大家有所帮助,能够尽快熟悉这个聚合函数
    2014-08-08
  • SQL Server中元数据函数的用法

    SQL Server中元数据函数的用法

    这篇文章介绍了SQL Server中元数据函数的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • SQL 在自增列插入指定数据的操作方法

    SQL 在自增列插入指定数据的操作方法

    这篇文章主要介绍了SQL 在自增列插入指定数据的操作方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-05-05
  • 一文详解如何彻底卸载sql server2022

    一文详解如何彻底卸载sql server2022

    SQL Server正常情况下可以通过添加删除将其卸载,但有时可能会出现一些不可遇见的原因,导致其不能自动卸载,就需要手工卸载,这篇文章主要给大家介绍了关于如何彻底卸载sql server2022的相关资料,需要的朋友可以参考下
    2024-07-07
  • SQLServer 数据导入导出的几种方法小结

    SQLServer 数据导入导出的几种方法小结

    在涉及到SQL Server编程或是管理时一定会用到数据的导入与导出, 导入导出的方法有多种,结合我在做项目时的经历做一下汇总
    2010-06-06
  • 数据库常用的sql语句汇总

    数据库常用的sql语句汇总

    这篇文章主要介绍了数据库常用的sql语句汇总,需要的朋友可以参考下
    2020-02-02
  • SQL Server中实现数据库的自定义视图

    SQL Server中实现数据库的自定义视图

    在SQL Server的数据处理和分析中,视图(View)是一种虚拟的表,其内容由SQL查询定义,自定义视图允许用户根据需要创建个性化的数据展示,本文将详细介绍如何在SQL Server中实现数据库的自定义视图,需要的朋友可以参考下
    2024-07-07

最新评论