SQL——存储进程分分快三全天计划网站

作者:分分快三全天计划网站

系统存款和储蓄进度

    回顾:SQL Server提供系统存款和储蓄进程,它们是一组预编写翻译的T-SQL语句。系统存款和储蓄进度提供了保管数据库和更新表的体制,并

       充任从系统表中检索音信的飞快形式。

 

    常用的系统存款和储蓄进度:

       SQL Server的种类存款和储蓄进程的称号以“sp_”最初,并寄存在Resource数据库中。上面列出有个别常用的连串存储进度↓

常用的系统存储过程 
系统存储过程  说明
sp_databases  列出服务器上的所有数据库信息,包括数据库名称和数据库大小
sp_ helpdb 报告有关指定数据库或所有数据库的信息 
sp_renamedb  更改数据库的名称 
sp_ tables 返回当前环境下可查询的表或视图的信息 
sp_ columns 返回某个表或视图的列信息,包括列的数据类型和长度等 
sp_help  查看某个数据库对象的信息,如列名、主键、约束、外键、索引等 
sp_helpconstraint  查看某个表的约束 
sp_helpindex  查看某个表的索引 
sp_stored_procedures  显示存储过程的列表 
sp_password  添加或修改登录账户的密码 
sp_helptext  显示默认值、未加密的存储过程、用户定义的存储过程、 触发器和视图的实际文本

 

    

 

 

 

 

 

 

 

 

 

 

    

    

    调用试行存款和储蓄进程:

       语法:    exec[ute]  [回来变量=]  存款和储蓄进程名  

                      [@参数1=]参数值1  [output]  |  [default],

 

                      ......,

 

                        [@参数n=]参数值n  [output]  |  [default]

 

       其中,exec是execute的简写

       要是实施存款和储蓄进度的话语时批管理中的第三个语句,则足以省略execute关键字。

       假使有重返值的话,可以用一个变量接收。不过在仓储进程内return只能回到数值类型

       output申明参数是出口参数,default代表参数的默许值。

       只要不依据参数顺序传递参数值,则要钦命参数名。

       要是有个别参数根据"@参数名=参数值"格式传递数据,那么该参数之后的别的参数都必得以同等的格式传递参数

       值。

 

    常用的扩展存款和储蓄进程:

       扩张存款和储蓄进程是SQL Server提供的各类系统存款和储蓄进程中的一类,允许使用其余编制程序语言创立外界存款和储蓄进度,为数据库用

       户提供从SQL Server实例到表面程序的接口,以便进行种种有限支撑活动。经常以"xp_"作为前缀,以DLL方式单独存在。

       语法:    exec  xp_cmdshell  DOS命令  [no_output]

              当中,exec表示调用存款和储蓄进度,no_output为可选参数,设置进行DOS命令后是或不是输出重回音讯。

 

 

     重申: 因为顾客能够因此xp_cmdshell对操作系统做一些操作,借使该存款和储蓄进度被黑客使用对操作系统做操作就劳动了,所以平时会把xp_cmdshell 关闭掉:

客户自定义的囤积进度

    组成:

       1.输入参数和出口参数。

       2.在积存进程中实行的T-SQL语句。

         3.存款和储蓄进度的重临值。

 

    语法:

       1.创办语法:

             create  proc[edure]  存款和储蓄进程名

                [{@参数1  数据类型}  [=默认值]  [output],

                ......,

                 {@参数n  数据类型}  [=默认值]  [output]

                ]

             as

                SQL语句

       2.刨除语法:

             drop  proc[edure]  存款和储蓄进程名

       3.论断存款和储蓄进度是还是不是留存,要是存在,则删除

             if  exists(select  *  from sysobjects where name = 存款和储蓄进度名)

                drop  proc[edure]  存款和储蓄进度名

             go

    语法释义:

       1.创建:

             proc是procedure的简写,参数的私下认可值可选,不写则尚未暗许值,调用推行时必须带有此参数。output

             表示是出口参数,即推行存款和储蓄进程后把重回值贮存在输出参数中。就好像C#中的援用传递一样。输出参数也

             能够安装暗中认可值。不写output则为输入参数,就疑似C#中的值传递同样。

             别的部须求注意,积累进度中参数的暗中认可值不能是系统函数。譬如参数是时刻等级次序,暗中同意值不能够是

             GETDATE()

 

 

  1.  常用的扩展存款和储蓄进程   xp_cmdshell

创建于2016-12-24 16:12:19

       带输出参数的囤积进程


          比方: raiserror ('错误消息', 16,1)

存款和储蓄进度

    概念:

       1.仓储进度是在数据库管理体系中保留的、预先编写翻译的、能达成某种意义的SQL程序,它是数据库应用中央银行使比较宽泛的

        一种多少对象。

       2.存款和储蓄进度是SQL语句和调控语句的预编写翻译集结,保存在数据Curry可由应用程序调用推行,何况允许客户注解变量、逻辑

          调控语句及其余强盛的编制程序作用。

       3.囤积进度可含蓄逻辑调节语句和多少操作语句,它能够吸纳参数、输出参数、再次来到单个或多少个结果集及再次回到值。

       4.积攒进程能够只蕴含一条select语句,也能够满含一多重使用调控流的SQL语句。存款和储蓄进度可以分包个别或任何的主宰

        流语句。

 

    特点:

       1.模块化程序设计:

          只需创设一回存款和储蓄进程并将其积累在数据库中,现在就能够在程序中往往调用该存款和储蓄进度。

       2.实践进程快,功效高:

          倘使某操作须要多量的T-SQL代码或必要再一次试行,则存款和储蓄进程将比T-SQL批管理代码的实践进程更快。因为存款和储蓄

          进程只在创设的时候编写翻译一次,而批管理代码每回推行的时候都亟需编写翻译。

       3.缩减互联网流量:

          使用存储进程后,一个亟待数百行T-SQL代码的操作,由一条实施进度代码的独立语句就可以兑现,而没有需求再网络

          中发送数百行代码。

       4.有着天时地利的安全性:

          尽管对于未有一贯实践存款和储蓄进度中语句的权限的客商,也可予以他们实践该存储进度的权力。差异的顾客使用不一样

          的储存进程。

       5.存款和储蓄进度分成两类:

          系统存款和储蓄进程客商自定义的积累进程

 

    msg_id: 在sysmessage系统表中钦命顾客定义错误消息

管理错误音信

    概念:在蕴藏过程中,能够运用print语句显式顾客定义的错误消息,但这一个是近日的,并不保留错误消息。使用raiserror语句

       能够钦赐严重品级并设置系统变量记录所发出的不当。

 

    raiserror语句:

       语法:

             raiserror  ({msg_id  |  msg_str}  {,  severity,  state}  [with  option [...n]])

       语法释义:

             msg_id:  在sysmessages系统表中内定的客户定义错误音信。

             msg_str:  客户定义的一定新闻,最长为2五拾三个字符。

             severity:   与一定音信涉及,表示客户定义的基本点等级。客户可应用的等级为0~18级;19~25级是

                     为sysadmin固定剧中人物的分子预先流出的,并且要求钦点with  log选项;20~25级被感觉是致命

                     错误。

             state:   代表错误的气象,是1~255中的值。

             option:   错误的自定义选项,能够是下列任一值

                     a. log:    在Microsoft SQL Server数据库引擎实例的谬误日志和应用程序日志中记

                            录错误。

                     b. nowait:  将音信立即发送给客商端。

                     c. seterror:  将@@error值和error_nummber值设置为msg_id或陆仟0,不用思考

                            严重等第。

 

                  @age int = 5,

 

  1. 积攒进程的分类

       as

  1. 何以采纳存款和储蓄进程

     方法一: 

               @num1  int,

             <SQL语句>

  go

 

      它平时以"sp_"初阶,是由SQL Server创设、管理和选拔,它贮存在Resource数据库中。类似C#语言类库中的方法,权且先不思考它是如何编写的,先领悟常用的系统存款和储蓄进程及调用方法。

    EXEC sp_configure 'xp_cmdshell', 0;

     state : 表示错误的动静, 1~255中的值

     应用程序通过T-SQL语句到服务器的进度是不安全的。

    关闭xp_cmdshell

       @name varchar(10)        

       go 

    EXEC sp_configure 'show advanced options', 1;

       create proc usp_name

  1. 管理存款和储蓄进程中的错误

 

   语法:

      1)系统存款和储蓄进度

 

    其中:

      3)客商自定义存储进度

    go

       go

 

    if  exists (select * from sysobject where name = 存款和储蓄进程名)

 一个成功的仓库储存进程包罗以下3片段:

  1. 顾客自定义存款和储蓄进度

 

  as  

      2)每趟提交SQL代码都要通过语法编译后在试行,影响应用程序的运作品质

     调用存款和储蓄进程 

     调用方法:exec[ute]  存款和储蓄过程名  [参数值]

   2) 在储存进度中试行的T-SQL语句

    raiserror  ( {msg_id  | msg_str} {, serverity, state } [with option [,……]])

  1. 哪些是储存进程

    删除存款和储蓄进度

    msg_str: 客户定义的一定音信,最长为252个字符

     常见的系统存款和储蓄进度,见下一篇文章

    RECONFIGURE;

    LOG: 在Microsoft SQl Server 数据库引擎示例的不当日志和应用程序日志中记录错误

      declare @sum int 

     方法二:

      注意, 调用满含输出参数的蕴藏进度参数前面总得带output关键字

           ……

            @参数1  数据类型 = 暗中同意值 output, 

      2)扩张存储进度(属于系统存款和储蓄进度的一种)

  1. 系统存款和储蓄进程

   3) 存款和储蓄进程的重回值

       as 

     2) 试行进程快,作用高

     exec  xp_cmdshell  DOS命令  [no_output]

            ……

     3) 收缩互联网流量

 

     示例: exec xp_cmdshell  'mkdir  D:newdir'  output

     1) 模块化呈现设计

 

              <SQL 语句>

       SETERROR:将@@error值和 ERROR_NUMBE安德拉 值设置为msg_id 或伍仟, 不用怀想严重品级。

  1. 积攒进程的长处

 

   1) 输入参数、输出参数

        存款和储蓄进度是SQL语句和调节语句的预编写翻译群集,保存在数据Curry,可由应用程序调用实施,何况允许客户证明变量、逻辑调控语句及其余强大的编制程序功效。保存在SQLServer中,通过名称和参数试行,也可壹遍到结果。对于仓库储存进度自身更赞成于把她理解成方法。它里面能够唯有一条查询语句,也足以包括一类别使用调节流的SQL语句。

            exec  @name = 'zm'

       表明: 为了调用方便,最佳将有暗许值的蕴藏进度参数列表放到最终。

     SQL Server2006版本及以下,通过开始- SQLServer- 外围设备查找

  1.  注意事项

在那之中输入参数允许有暗中认可值。

            exec  default  , 'zm'

     1) 数据不安全

     option: 错误的自定义选项,能够使一下随意一值

            @参数n  数据类型 = 默许值 output

     4) 具备能够的安全性

     xp_cmdshell  它能够成功DOS命令下的一部分操作。

      create proc  usp_name

          NOWAIT:将音讯立即发送给顾客端

    开启xp_cmdshell

           exec  pr_name  18 , 'zm'

    EXEC sp_configure 'xp_cmdshell', 1;

      3) 网络流量大

    EXEC sp_configure 'show advanced options', 1;

    serverity: 与一定新闻相关联,表示客商定义的最首要等级。客商可采取的等级是0~18。数字越大,表示越严重。

   create  proc[edure] 存款和储蓄进度名

 

     说明  no_output是可选参数,表示设置举行DOS命令后是不是输出再次来到音讯。

     SQL Server 二零一零本子及以上, 通过数据库右击  选取“方面”   ,在下拉列表中挑选 “服务器安全‘ , 下边包车型的士列表项中能够看来xmcmdshellEnable 设置。

    RECONFIGURE;

      exec  usp_name  5, @sum  output

    drop proc  存储进程名

             drop proc  存款和储蓄进度名

    RECONFIGURE;

               @sum int output

       存款和储蓄进程的评释: 输入参数可以有暗许值,输出参数也能够有默许值

     RECONFIGURE;

        推行语句:  

本文由分分快三计划发布,转载请注明来源

关键词: 分分快三计划 SQL