admin管理员组

文章数量:1530518

2024年7月21日发(作者:)

实验3 存储过程与触发器的创建

一、 实验目的与要求

1.

2.

3.

4.

掌握使用向导创建存储过程并更新相应数据;

掌握使用T-SQL语句创建一个存储过程并验证;

掌握创建和执行带参数的存储过程;

掌握触发器的创建与使用.

二、 实验内容

1. 创建存储过程。

2. 创建触发器。

3. 保存并上交实验结果。

三、 实验步骤

1. 创建存储过程pr_buy, 返回指定会员帐号(m_account )已付款购买的商品信息,SQL

代码如下所示:

USE eshop

GO

CREATE PROCEDURE pr_buy

@account VARCHAR(20)

AS

SELECT *

FROM orders

WHERE m_account = @account

2. 执行存储过程pr_buy显示帐号为liuzc518会员的购买商品信息,SQL代码如下所示:

USE eshop

EXEC pr_buy 'liuzc518'

执行结果如图3.1所示。

图3.1 存储过程验证

3. 在企业管理器中,对pr_buy进行如下的操作:

(1) 查看其定义的文本

打开“SQL Server企业管理器”,定位到eshop数据库,展开eshop数据库的对象,再

定位到“存储过程”项,右击pr_buy存储过程,弹出快捷菜单,如图3.2所示。从快捷菜

单中选择“属性”,将弹出“存储过程属性-pr_buy”对话框,如图3.3所示。

图3.2 选择需要查看其属性的存储过程

图3.3 查看存储过程属性

4. 基于“商品表”创建AFTER INSERT触发器tr_insert_price,实现新添记录数据时商品的

价格限制在10000以内,SQL代码如下所示:

CREATE TRIGGER tr_insert_price

ON products

AFTER INSERT

AS

DECLARE @price money

SELECT @price = p_price

FROM inserted

IF @price > 10000

BEGIN

ROLLBACK TRANSACTION

RAISERROR('商品价格超出范围',16,10)

END

图3.4 创建触发器

图3.5触发器属性

利用企业管理器在eshop数据库中选择produces表,右键单击弹出菜单中选择管理

触发器,在弹出的界面——名称中选择tr_insert_price,即可查看其属性,如图3.5所示。

5. 查看所创建触发器详细信息同,SQL代码如下所示:

USE eshop

EXEC sp_helptrigger members

EXEC sp_helptext tr_age

EXEC sp_helptrigger products

EXEC sp_helptext tr_insert_price

6. 添加如下记录,测试tr_insert_price触发器的功能。

在查询分析器执行以下SQL代码:

INSERT INTO products VALUES('','奇瑞小轿车','2005-06-13',8,25860.0,'大折

扣');

再按F5或点击工具栏上的运行按钮“”,运行插入记录到数据表的SQL代码,将触

发在数据表中定义的触发器,在结果框中显示以下“商品价格超出范围”消息,如图3.6所

示。

图3.6 触发器验证

四、 注意事项

1. 存储过程输入参数的使用。

2. 存储过程输出参数的使用。

3. 触发器中触发事件以及类型的确定。

本文标签: 过程触发器创建实验记录