zoukankan      html  css  js  c++  java
  • 存储过程

    存储过程:
    定义:存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在

    数据库中。
    使用存储过程的优点:
    1.在服务器端运行,执行速度快。
    2.执行一次后,其执行规划就驻存高速缓冲存储器中,以后操作时只需从高速缓冲存储器中调用

    已编译后的二进制代码执行,提高了系统性能。
    3.确保数据库的安全。
    4.自动完成需要预先执行的任务。

    存储过程的类型:
    系统存储过程:由系统提供,作为命令执行各种操作。
    本地存储过程:在用户数据库中创建,可完成特定操作任务。
    临时存储过程:只能在一个用户会话中使用。名称以#开头。 
    远程存储过程:从远程服务器上调用。 
    扩展存储过程:是指在SQL Server环境之外执行的动态链接库,其前缀是sp_

    存储过程的语句:
    创建格式:
    Create procedure procedue_name

    [@parameter data_type][output]  
     
      [with]{recompile|encryption}

      as

    sql_statement

    @paramete是存储过程的形参,data_type用于指定形参的数据类型
    Output指示参数是输出参数,可返回信息。
    recompile|encryption参数的处理方式。
    sql_statement代表过程体包含的T-SQL语句

    现有数据库Test,Table(Message)

    1.创建带返回集的存储过程

    create procedure R1
    @
    as
    begin
    select * from [Test].[dbo].[Message]
    end

    exec R1

    2.创建一个要求输入一个输入参数的存储过程

    create procedure R2
    @ID int=1   
    as
    begin
    select * from [Test].[dbo].[Message]
    where ID=@ID
    end

    exec R2 1 

    3.创建一个要求输入两个输入参数的存储过程

    create procedure R3
    @ID int=1,
    @CH char(4)='PA'
    as
    begin
    select * from [Test].[dbo].[Message]
    where ID=@ID and CHK_CONN=@CH
    end

    exec R3 3,'PAS'

    4.创建有返回值的存储过程

    create procedure R4
    @ID int,
    @CH char(4),
    @THROUGHPUT varchar(50) output
    as
    begin
    select @THROUGHPUT=TX_THROUGHPUT from [Test].[dbo].[Message]
    where ID=@ID and CHK_CONN=@CH
    end

    Declare @THROUGHPUT varchar(50)//声明一个变量用来接收执行过存储过程后的返回值

    exec R4 3,'PASS' ,@THROUGHPUT output

    select @THROUGHPUT as 'F'//as 后是给返回的列值起的一个别名

    5.创建可以更改的存储过程

    alter procedure R4

    @ID int=1,
    @CH char(4),
    @THROUGHPUT varchar(50) output,
    @Serial varchar(12)output
    as
    begin
    select @THROUGHPUT=TX_THROUGHPUT ,@Serial=SerialNumber from [Test].[dbo].[Message]
    where ID=@ID and CHK_CONN=@CH
    end

    Declare @THROUGHPUT varchar(50),@Serial varchar(12)
    exec R4 1,'PASS' ,@THROUGHPUT output,@Serial output
    select @THROUGHPUT, @Serial as 'F'

    6创建存储信息(if---else)

    create procedure R6
    @ID int=1,
    @CH char(4),
    @THROUGHPUT varchar(50) output
    as
    begin
    if exists
    (select * from [Test].[dbo].[Message] where ID=@ID and CHK_CONN=@CH)
    select @THROUGHPUT='True'
    else
    select @THROUGHPUT='False'
    end

    Declare @THROUGHPUT varchar(50)
    exec R6 1,'PASS',@THROUGHPUT output
    select @THROUGHPUT 'F'

  • 相关阅读:
    「四步接入」开启秀场直播,揭秘七牛云互动直播解决方案
    【直播预告】揭秘互动直播,技术咖携手美女主播解读直播背后那点事儿
    初识k8s(基础概念加历史了解)(一)
    Linux lsof命令的使用示例
    Linux netstat:查看网络状态
    Linux uname命令:查看系统和内核相关信息
    系统环境变量PATH的设置与查看,以Mac为例
    Shell echo命令
    Linux which命令
    【转译】每个Python开发者都应该掌握的8种数据结构
  • 原文地址:https://www.cnblogs.com/karrydong/p/3131904.html
Copyright © 2011-2022 走看看