• 存储过程


    存储过程:

    存储过程(stored procedure)有时也称为sproc。存储过程存储于数据库中而不是在单独的文件中,有输入参数、输出参数以及返回值等。

     

    在数据库中,创建存储过程和创建其他对象的过程一样,除了它使用的AS关键字外。存储过程的基本语法如下:

    CREATE PROCDUER|PROC <sproc name>

        [<parameter name>[schema.]<data type>[VARYING][=<default value>][OUT [PUT]][,

        [<parameter name>[schema.]<data type>[VARYING][=<default value>][OUT [PUT]][,

        ...]]

    [WITH

        RECOMPILE|ENCRYPTION|[EXECUTE AS {CALLER|SELF|OWNER|<'user name'>}]

    [FOR REPLICATION]

    AS

        <code>|EXTERNAL NAME <assembly name>.<assembly class>

    存储过程示例一:

    执行存储过程方法一:

    执行存储过程方法二:

    上面说过,存储过程可以定义返回值。

    示例:

    修改存储过程示例:

    利用存储过程查找三个表内的信息示例:

    示例:

    示例二:

    使用返回值进行接收的示例:

    简单使用返回值的方法示例:

    在创建存储过程时,我们可以设置它有一个默认值。

    示例:

     

    定义一个@count接收返回值,用来查看是否含有这个学生

     超市管理系统:

    表一:门店仓库表   MenDian
    列名:商品编号scode、商品名称sname、商品数量sshu、商品单价sprice、商品进货商sgong

    表二:进货商的表   Gongying
    列名:进货商的编号gcode、进货商名称gname,进货商联系人glian、进货商的电话gtel

    表三:小票表 Xiaopiao
    列名:小票编号pcode、商品名称pname、商品单价pprice、数量pshu、总价pzong、时间ptime


    要求,写一个存储过程,买东西,自动添加小票进入。

    1.我又没有这个商品???
    2.你买的数量在我店里能不能够???


    存储过程的参数,商品编号,要的数量
     1 USE lianxi0928
     2 GO
     3 CREATE table mendian
     4 (
     5     scode int primary key identity(101,1),
     6     sname varchar(18),
     7     sshu int,
     8     sprice decimal(18,2),
     9     sgong int,
    10 )
    11 CREATE table gongying
    12 (
    13     gcode int primary key identity(1,1),
    14     gname varchar(18),
    15     glian varchar(18),
    16     gtel decimal(18,0)
    17 )
    18 CREATE table xiaopiao
    19 (
    20     pcode int primary key identity(11,1),
    21     pname varchar(18),
    22     pprice decimal(18,2),
    23     pshu int,
    24     pzong decimal(18,2),
    25     ptime datetime,
    26 )
    27 INSERT INTO mendian VALUES
    28 (    '三星note7',42,4000,'1')
    29 INSERT INTO mendian VALUES
    30 (    'iphone6s',52,5000,'2')
    31 INSERT INTO mendian VALUES
    32 (    '华为P9',12,2000,'3')
    33 INSERT INTO mendian VALUES
    34 (    '板砖',78,40,'4')
    35 INSERT INTO mendian VALUES
    36 (    '暖手宝',22,30,'5')
    37 
    38 INSERT INTO gongying VALUES
    39 (    '三星','三星公司',123456)
    40 INSERT INTO gongying VALUES
    41 (    '苹果','苹果公司',231341)
    42 INSERT INTO gongying VALUES
    43 (    '华为','华为公司',647121)
    44 INSERT INTO gongying VALUES
    45 (    '诺基亚','微软公司',593113)
    46 INSERT INTO gongying VALUES
    47 (    '小米','小米公司',090921)
    48 SELECT*FROM xiaopiao
    49 SELECT*FROM mendian
    50 SELECT*FROM gongying
    51 
    52 ALTER proc goumai
    53 @gm int, @shu int
    54 as
    55 begin
    56 declare @q1 int
    57 select @q1= COUNT(*) from mendian where scode=@gm
    58 IF @q1=1
    59 begin
    60     declare @we int
    61     select @we= sshu from mendian where scode=@gm
    62     IF @we>@shu
    63     begin
    64     declare @z1 varchar(18)
    65     select @z1=sname from mendian where scode=@gm
    66     declare @z2 decimal(18,2)
    67     select @z2=sprice from mendian where scode=@gm
    68     declare @z3 decimal(18,2)
    69     set @z3=@shu*@z2
    70     declare @time datetime
    71     set @time=GETDATE()
    72     insert INTO xiaopiao VALUES(@z1,@z2,@shu,@z3,@time)
    73     update mendian SET sshu=@we-@shu where scode=@gm
    74 end
    75 else
    76 begin
    77     declare @i1 varchar(18)
    78     select @i1=gname from gongying where gcode=(SELECT sgong from mendian WHERE scode=@gm)
    79     declare @i2 varchar(18)
    80     select @i2=glian from gongying where gcode=(SELECT sgong FROM mendian WHERE scode=@gm)
    81     declare @i3 varchar(18)
    82     select @i3= gtel from gongying where gcode=(SELECT sgong FROM mendian WHERE scode=@gm)
    83     print ('数量不足,请联系供应商'+@i1+',联系人:'+@i2+'联系电话'+cast(@i3 as varchar(18)))
    84 end
    85 end
    86 else
    87 begin
    88     print('没有此商品')
    89 end
    90 END
    91 GO
    92 EXEC goumai 106,4
    93 SELECT *FROM mendian
    94 SELECT *FROM xiaopiao

     

     

  • 相关阅读:
    HDU 2460 Network 傻逼Tarjan
    HTTP状态码
    Spring Tool Suite(STS)安装
    Manajro17配置
    VsCode搭建Java开发环境
    《从零开始搭建游戏服务器》项目管理工具Maven
    Debian9安装MariaDB
    Intellij从无到有创建项目
    PostgreSQL 二进制安装
    Intellij IDEA创建项目
  • 原文地址:https://www.cnblogs.com/1030351096zzz/p/6083525.html
Copyright © 2020-2023  润新知