sql server 里面提供了丰富的系统存储过程来辅助我们管理数据库以及开发。今天分享介绍一些常用的数据库扩展存储过程

xp_cmdshell

这个大家都比较熟悉了,使用xp_cmdshell 可以在连接sql server 的时候可以执行doc 命令

最简单一个例子EXEC master.sys.xp_cmdshell 'dir D:\' 获取D 盘下面的目录。当然这个D:\ 是服务器上面的,不是本地电脑的。

所以有时候可以使用 xp_cmdshell 配合作业都角度使用执行bcp等命令来导入导出数据,也是很方便的。

但是使用的过程中,有下面几点留意一下

1 首次使用的时候,需要使用 EXEC sys.sp_configure @configname = 'xp_cmdshell',@configvalue = 1 来启用xp_cmdshell ,默认情况下,sql server 是禁用本功能的

2 可以使用 no_output 来忽略输出结果。

3 注意权限问题,注意非管理员账号的用户使用xp_cmdshell 。

xp_logininfo

这个返回的是服务器windows 用户和windows 组的信息

msdn上面写着这个存储过程具有3个参数 @acctname ,@option ,@privilege

燃鹅不知道是我测试的问题还是本身这个存储过程只有1个参数,@option 和 @privilege 传入进去都是无效的。

使用方法

EXEC master.sys.xp_logininfo

或者 EXEC master.sys.xp_logininfo @acctname = 'GINLATOP\Gin' 加上个账号名还是ok的

xp_msver

这个是返回服务器的版本消息。

调用方法可以使用

EXEC master..xp_msver

或者 EXEC master..xp_msver 'ProductName' --这个可以是上面的结果集返回的任意一个Name 的值,假如找不到,就会返回空结果集

xp_sprintf

这个扩展存储过程看起来就有点像入门写C语言的printf 函数了。燃鹅即时这样,我认为其实用到它的机会并不多。大部分使用的场景如下

DECLARE @i VARCHAR(20) = 1,
@j varchar(50) = 'ajofen',
@s VARCHAR(80)

EXEC master..xp_sprintf @s OUTPUT,'there are two varaint one is %s and another is %s ',@i,@j
PRINT @s

坑爹的是,这个存储过程的参数只支持字符型的……并且如果这样搞的话,使用 +来拼接字符串也ok了,所以也只是介绍一下╮(╯_╰)╭

xp_sscanf

这个扩展存储过程是对插入的字符串变量进行格式化取值。

DECLARE @i VARHAR(50) = 1,
@j varchar(50) ,
@s VARCHAR(80)

EXEC master..xp_sscanf '3 + 31 = 34','%s + %s =34',@i OUTPUT,@s OUTPUT
SELECT @i,@j,@s

好,本次分享在这里结束了。下次看看再找一下。或者大家补充一下

sql server 常用的扩展存储过程的更多相关文章

  1. sql server 常用的系统存储过程

      系统存储过程 说明 sp_databases 列出服务上的所有数据库 sp_helpdb 报告有关指定数据库或所有数据库的信息 sp_renamedb 更改数据库的名称 sp_tables 返回当 ...

  2. Sql Server 常用系统存储过程大全

    -- 来源于网络 -- 更详细的介结参考联机帮助文档 xp_cmdshell --*执行DOS各种命令,结果以文本行返回. xp_fixeddrives --*查询各磁盘/分区可用空间 xp_logi ...

  3. 如果正确读取SQL Server中的扩展事件?

        SQL Server中使用扩展事件捕捉所需的信息后,可以选择存放的位置.比如说内存或文件中,但无论存在哪里,其本质都是一个大XML.因此在SQL Server中读取该XML就是解析扩展事件结果 ...

  4. SQL Server技术问题之存储过程与sql语句的优缺点

    优点: 1. 允许模块化程序设计.2.可维护性高,只需创建存储过程一次并将其存储在数据库中,以后即可在程序中调用该过程任意次.存储过程可独立于程序源代码而单独修改,而不需要更改.测试以及重新部署程序集 ...

  5. Sql Server 带参数的存储过程执行方法

    Sql Server 带参数的存储过程执行方法 Visual C# 动态操作 SQL Server 数据库实例教程(4):带参数的存储过程执行方法 上一篇文章介绍了带参数的SQL语句执行方法和不带参数 ...

  6. [转] sql server 跨数据库调用存储过程

    A库存储过程: create PROCEDURE [dbo].[spAAAForTest] ( ) =null , ) =null ) AS BEGIN select N'A' AS a , N'B' ...

  7. SQL SERVER常用语法记录

    用于记录SQL SERVER常用语法,以及内置函数. 以下语句包含: WITH 临时表语法 ROW_NUMBER()内置函数,我一般主要是用来分页.针对于查出来的所有数据做一个数字排序 分页的BETW ...

  8. sql Server 常用存储过程的优化

    优化存储过程有很多种方法,下面介绍最常用的7种. 1.使用SET NOCOUNT ON选项 我们使用SELECT语句时,除了返回对应的结果集外,还会返回相应的影响行数.使用SET NOCOUNT ON ...

  9. SQL Server常用的几个存储过程

    1. sp_helptext 查看一些数据库对象的定义,比如存储过程.函数.试图等. 2. sp_who或者sp_who2 查看SQL Server数据库会话信息.比如是否被阻塞.

随机推荐

  1. C++ std::map

    std::map template < class Key, // map::key_type class T, // map::mapped_type class Compare = less ...

  2. Tomcat 8熵池阻塞变慢详解(putty)

    原因 Tomcat 7/8都使用org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom类产生安全随机类SecureRand ...

  3. 使用python crontab设置linux定时任务

    熟悉linux的朋友应该知道在linux中可以使用crontab设置定时任务.可以通过命令crontab -e编写任务.当然也可以直接写配置文件设置任务. 但是有时候希望通过脚本自动设置,比如我们应用 ...

  4. atitit 商业项目常用模块技术知识点 v3 qc29

    atitit 商业项目常用模块技术知识点 v3 qc29 条码二维码barcodebarcode 条码二维码qrcodeqrcode 条码二维码dm码生成与识别 条码二维码pdf147码 条码二维码z ...

  5. Atitit Data Matrix dm码的原理与特点

    Atitit Data Matrix dm码的原理与特点 Datamatrix原名Datacode,由美国国际资料公司(International Data Matrix, 简称ID Matrix)于 ...

  6. UML

    UML:1.继承关系用空心三角形+实线来表示2.实现接口用空心三角形+虚线来表示3.关联关系用实线箭头来表示4.依赖关系用虚线箭头来表示5.聚合关系用空心菱形+实线箭头来表示6.组合关系用实心菱形+实 ...

  7. Android Weekly Notes Issue #231

    Android Weekly Issue #231 November 13th, 2016 Android Weekly Issue #231 Android Weekly阅读笔记, Issue #2 ...

  8. 基于Caffe的DeepID2实现(下)

    小喵的唠叨话:这次的博客,真心累伤了小喵的心.但考虑到知识需要巩固和分享,小喵决定这次把剩下的内容都写完. 小喵的博客:http://www.miaoerduo.com 博客原文: http://ww ...

  9. PHP 面向对象编程和设计模式 (1/5) - 抽象类、对象接口、instanceof 和契约式编程

    PHP高级程序设计 学习笔记 2014.06.09 什么是面向对象编程 面向对象编程(Object Oriented Programming,OOP)是一种计算机编程架构.OOP 的一条基本原则是计算 ...

  10. ASP.NET MVC5+EF6+EasyUI 后台管理系统(40)-精准在线人数统计实现-【过滤器+Cache】

    系列目录 上次的探讨没有任何结果,我浏览了大量的文章和个别系统的参考!决定用Cache来做,这可能有点难以接受但是配合mvc过滤器来做效果非常好! 由于之前的过滤器我们用过了OnActionExecu ...