• 学习存储过程(1)


    存储过程说白了就是一堆 SQL 的合并。中间加了点逻辑控制。
    用户自定义存储过程create proc | procedure pro_name
    [{@参数数据类型} [=默认值] [output],
    {@参数数据类型} [=默认值] [output],
    ....
    ]
    as
    SQL_statements


    创建存储过程
    Create procedure sp_name //sp_name 自己给存储过程去的名称

    Begin

    ……

    End

    Create Proc dbo.存储过程名
    存储过程参数
    AS
    执行语句
    RETURN
    执行存储过程
    GO


    Eg:

    -- 要创建存储过程的数据库

    Use Test

    -- 判断要创建的存储过程名是否存在

    if Exists(Select name From sysobjects Where name='csp_AddInfo' And

    type='P')

    -- 删除存储过程

    Drop Procedure dbo.csp_AddInfo

    Go

    -- 创建存储过程

    Create Proc dbo.csp_AddInfo

    -- 存储过程参数

    @UserName varchar(16),

    @Pwd varchar(50),

    @Age smallint,

    @Sex varchar(6)

    AS

    -- 存储过程语句体

    insert into Uname (UserName,Pwd,Age,Sex)

    values (@UserName,@Pwd,@Age,@Sex)

    RETURN

    -- 执行

    GO

    -- 执行存储过程

    EXEC csp_AddInfo 'Junn.A','123456',20,'男'


    --创建存储过程
    if (exists (select * from sys.objects where name = 'proc_get_student'))
    drop proc proc_get_student
    go
    create proc proc_get_student
    as
    select * from student;

    --调用、执行存储过程
    exec proc_get_student;


    存储过程说白了就是一堆 SQL 的合并。中间加了点逻辑控制。
    存储过程运行流程


    创建不带参数存储过程
    --创建存储过程

    if (exists (select * from sys.objects where name = 'proc_get_student'))
    drop proc proc_get_student
      

    create proc proc_get_student
    as
    select * from student;
      结果:

    --调用、执行存储过程

    exec proc_get_student;
      查询结果:


    带参存储过程
    if (object_id('proc_find_stu', 'P') is not null)
    drop proc proc_find_stu
    go
    create proc proc_find_stu(@startId int, @endId int)
    as
    select * from student where id between @startId and @endId
    go

    exec proc_find_stu 2, 4;
      执行结果:
    2 赵姳 17 男
    3 张曼 18 女
    4 张立 19 女


  • 相关阅读:
    汇总国内开源站点镜像网站-20210813更新
    谈谈技术人的技术家园
    庖丁解码
    好的软件(软件工程)
    LeetCode 914卡盘分组
    《黑客与画家》读书笔记
    30岁的我给现在26岁的自己的想说的一些话
    毕业一年半,发现自己还是一个CURD boy
    LeetCode 120 Triangle
    疫情相关项目复盘
  • 原文地址:https://www.cnblogs.com/guangzhou11/p/9025132.html
Copyright © 2020-2023  润新知