≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 数据库 > SQL Server

浅析SQLServer中的Scanf与Printf

人气:538 时间:2020-03-11

这篇文章主要为大家详细介绍了浅析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 
*/ 

本文来自:http://www.q1010.com/179/8413-0.html

注:关于浅析SQLServer中的Scanf与Printf的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:SQL SERVER

您可能感兴趣的文章

  • SQL Server 将ACCESS数据库迁移到SQLSERVER数据库两种方法
  • SQL Server 使用mongovue把sqlserver数据导入mongodb的简单示例
  • SQL Server driver配置方法 jdbc连接sqlserver的简单示例
  • SQL Server 查找查询死锁源头的方法 sqlserver死锁监控
  • Linux环境中使用BIEE 连接SQLServer业务数据源的简单示例
  • SqlServer 类似Oracle的before触发器实现方法
  • SQL Server 压缩MS SQLServer日志语句示例
  • win2003安装sqlserver 2000提示无法验证产品密钥解析
  • SqlServer 基础知识 数据检索、查询排序语句
  • SQL Server利用sys.sysprocesses检查SqlServer的阻塞和死锁
上一篇:区分SQL数据库中的主键与外键的简单示例
下一篇:SQL Server存储过程入门学习
热门文章
  • SQL Server SQL获取第一条记录的方法
  • SQL Server出现System.OutOfMemoryException异常的解决方法
  • SQL Server的 update from 语句的简单示例
  • SQL Server 数据库备份方法菜鸟教程
  • SQL Server 多表关联时在where语句中慎用trim()方法
  • SQL Server数据类型及长度限制详细说明
  • mybaits非配置原因,导致SqlSession was not registered for synchronization异常解析
  • SQL Server 收缩后对数据库的使用有影响吗?
  • SQL Server 格式导致的Excel导入sql出现异常的解决方法
  • SQL Server 连接服务器出现错误 7391的解决方法
  • 最新文章
    • SQL Server存储过程基本语法的简单示例
    • sql查询时增加自动编号和分页的简单示例
    • sql轻松应付百万数据的高效数据分页存储过程的简单示例
    • sql获取一条数据中所有字段的名称和值的实现方法
    • sql分割函数的简单示例
    • SQL Server异常捕获的简单示例
    • SQL SERVER回滚恢复误操作数据的实现方法
    • SQL Server函数或存储过程中抛出异常的实现方法
    • SQL Server创建数据库的完整代码
    • SQL Server创建数据库的命令用法示例

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。