• 存储过程与触发器的应用


    一、实验目的

    1、掌握创建存储过程的方法和步骤。

    2.掌握存储过程的用法;

    3.掌握创建触发器的方法和步骤。

    4.掌握触发器的使用方法。

    二、实验内容

    1、存储过程的创建、运行和删除;

    2、触发器的创建、运行和删除。

    三、实验步骤

    1、存储过程的创建、运行和删除。

    1)使用S_C数据库中的S表、C表、SC表创建一个带參数的存储过程—cjjicx。该存储过程的作用是: 当随意输入一个学生的姓名时。将从三个表中返回该学生的学号、选修的课程名称和课程成绩。

    cjjicx创建语句:

    CREATE PROCEDURE cjjicx

    @name char(6)

    AS

    BEGIN

    SELECT S.sno, C.cname, SC.grade FROM S, C, SC

    WHERE S.sname = @name AND S.sno = SC.sno AND SC.cno = C.cno 

    END

    2)运行cjjicx存储过程,查询“刘晨”的学号、选修课程和课程成绩。

    运行语句:

    EXEC cjjicx @name = '刘晨'

    结果描写叙述:

    3)使用系统存储过程sp_helptext查看存储过程cjjicx的文本信息。

    查看结果描写叙述:

    sp_helptext cjjicx

     

    4)使用S-C数据库中的S表。为其创建一个加密的存储过程—jmxs。该存储过程的作用是:当运行该 存储过程时。将返回计算机系学生的全部信息。

    jmxs创建语句:

    CREATE PROCEDURE mxs WITH ENCRYPTION

    AS

    BEGIN

    SELECT * FROM S

    END

    5)运行jmxs存储过程。查看计算机系学生的情况。

    运行语句:

    EXEC mxs

    结果描写叙述:

    SP_HELPTEXT mxs

     

    6)删除jmxs存储过程。

    删除语句:

    DROP PROCEDURE mxs

    2、触发器的创建、运行和删除。

    1)在S_C数据库中建立一个名为insert_xhINSERT触发器,存储在SC表中。

    该触发器的作用是: 当用户向SC表中插入记录时,假设插入了在S表中没有的学生学号sno。则提示用户不能插入记录, 否则提示记录插入成功。

    insert_xh的创建语句:

    CREATE TRIGGER insert_xh ON SC

    AFTER INSERT

    AS

    BEGIN

    IF(SELECT COUNT(*) FROM inserted JOIN S ON S.sno = inserted.sno) = 0

    BEGIN

    ROLLBACK TRAN

    PRINT '用户不能插入记录'

    END

    ELSE

    PRINT '记录插入成功'

    END

    2)为S_C数据库中的S表创建一个名为dele_stuDELETE触发器,该触发器的作用是禁止删除S 表中的记录。

    dele_stu的创建语句:

    CREATE TRIGGER dele_stu ON S

    AFTER DELETE

    AS

    BEGIN

    ROLLBACK TRAN

    PRINT '禁止删除'

    END

    3)为S_C数据库中的SC表创建一个名为update_gradeUPDATE触发器,该触发器的作用是禁止更SC表中的grade字段的内容。

    update_grade的定义语句:

    CREATE TRIGGER update_grade ON SC

    FOR INSERT, UPDATE

    AS

    DECLARE @grade1 INT;

    DECLARE @grade2 INT;

    SELECT @grade1 = inserted.grade FROM inserted

    SELECT @grade2 = deleted.grade FROM deleted

    BEGIN

    IF(@grade1 != @grade2)

    BEGIN

    PRINT '不能改动分数'

    ROLLBACK TRAN

    END

    END

    4)删除update_grade触发器。

    删除update_grade触发器的命令:

    DROP TRIGGER update_grade

    四、实验总结

    最最基础的

  • 相关阅读:
    该伙伴事务管理器已经禁止了它对远程/网络事务的支持。"。
    sqlserver 2005 分布式架构 对等事务复制 .
    兼容级别
    Delphi中的INI文件编程
    金正昆谈礼仪之西餐礼仪zt
    WOW UI定制基本资料初学者指南 被一个疯狂迷恋魔兽的兄弟逼死了,不得以,沦落的作些小脚本,失败呀
    相爱与相知
    情欲信,而词欲巧
    周日去看F1:)
    当程序用ado的jet4.0方式连接的时候,对于设有access数据库密码的mdb的访问居然报错“无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开”,而用odbc方式不报错,小阴沟里翻船,郁闷中然后查文档解决之
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/7344615.html
Copyright © 2020-2023  润新知