zoukankan      html  css  js  c++  java
  • 学习存储过程(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 女


  • 相关阅读:
    POJ 2240 Arbitrage spfa 判正环
    POJ 3259 Wormholes spfa 判负环
    POJ1680 Currency Exchange SPFA判正环
    HDU5649 DZY Loves Sorting 线段树
    HDU 5648 DZY Loves Math 暴力打表
    HDU5647 DZY Loves Connecting 树形DP
    CDOJ 1071 秋实大哥下棋 线段树
    HDU5046 Airport dancing links 重复覆盖+二分
    HDU 3335 Divisibility dancing links 重复覆盖
    FZU1686 神龙的难题 dancing links 重复覆盖
  • 原文地址:https://www.cnblogs.com/guangzhou11/p/9025132.html
Copyright © 2011-2022 走看看