zoukankan      html  css  js  c++  java
  • 数据库存储过程、触发器、函数的使用

    数据库存储过程、触发器、函数

    ·创建存储过程

    CREATE PROCEDURE 存储过程名称

    Use TEST

    GO

    Create procedure user_insert @uID char(20),@uname varchar(20),@upwd  char(20),@num int

    As

    Begin

             While @num>10

             Insert into user

             Values(@uID,@uname,@upwd)

             Set @num=@num+1

             Set @uID=@uID+1

    end

    执行存储过程

    Exec user_insert ‘002’,’jc’,’123456’,0   --循环执行插入10条记录

    强化

    判断user表的userID是否已存在,不存在则加入一条新记录

    User TEST

    GO

    Create procedure user_in @uID char(20) ,@uname char(20), @upwd char(20)

    As

    Begin

             /*判断user表的userID为011是否存在,如果不存在则插入新的记录*/

             If not exists (select userID from user where userID=’011’)

             Insert into user values(@uID,@uname,@upwd)

    end

    执行存储过程

    Exec user_in ‘011’,’tang’,’123456’

    ·创建触发器

    Create trigger 触发器名称 on 表名

    Create trigger delete_user_info on user

    After delete

    As

    Begin

             Delete from user_info where userID=(selete userID from deleted)

    End

    解析:当删除user表记录时,就会触发delete_user_info触发器,并删除user_info中的对应的userID的记录。

    (1)       ON关键字后面指定触发器执行的表,after 关键字用于说明触发器在指定操作都成功执行后触发,delete关键字表示删除操作后激活触发器

    (2)       Deleted表是系统临时表,用于保存已从触发器表中删除的记录,当触发器的一个delete触发器时,被删除的记录存放到deleted表中

    ·创建函数

    CREATE FUNCTION  函数名称(@参数名 类型)

    Use TEST

    GO

    Create function L_name(@uname char(20))

    Returns int

    As

    Begin

             Declare @sum1

             Select  @sum1=count(*) from user where username=@uname

             Return @sum1

    End

    执行函数

    Declare @sum int

    Exec @sum=dbo.L_name(“tang”)

    Select @sum as “用户名为tang的用户数”

  • 相关阅读:
    win server 2012 服务器不能ping通
    Linux系统的文件目录结构
    怎样理解和识别 Linux 中的文件类型
    Linux(Centos 7)下安装Git并配置连接GitHub
    centos 7 下升级自带 sqlite3
    Pycharm项目上传到Github
    计算机存储单位:bit, Byte, KB, MB, GB, TB, PB, EB, ZB, BB
    ubuntu 删除命令
    influxDB 各个历史版本号,时间截止2020年9月27日
    使用Github做一个完全免费的个人网站
  • 原文地址:https://www.cnblogs.com/JcHome/p/8434995.html
Copyright © 2011-2022 走看看