• 存储过程


    存储过程:
    定义:存储过程(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'

  • 相关阅读:
    git中Please enter a commit message to explain why this merge is necessary.
    用$(this)选择其下带有class的子元素
    将某页面中ajax中获取到的信息放置到sessionStorage中保存,并在其他页面调用这些数据。
    返回顶部黑科技
    对于div里面内容过大根据长度或者宽度进行适配,然后可以滚轮缩放的功能
    vue runtime报错问题
    webpack简单配置
    input type=color 设置颜色
    vue统一注册组件
    vue模板字符串写法
  • 原文地址:https://www.cnblogs.com/karrydong/p/3131904.html
Copyright © 2020-2023  润新知