存储过程与事务的使用

实验九 存储过程的使用

一、实验目的

       熟练掌握使用 SQL SERVER 2000 创建和执行存储过程的方法。 熟练掌握存储过程的删除操作。 

二、实验准备

1.熟悉 SQL SERVER 2000 设计环境;

2.熟悉存过过程的创建方法、步骤

三、实验内容

1、利用企业管理器或查询分析器创建 proc_s 存储过程。在查询分析器中 建立存储过程的命令如下:

create procedure proc_s as select * from 学生

2、使用 EXECUTE 语句执行存储过程并观察结果。命令如下:

exec proc_s

3、利用企业管理器或查询分析器创建 proc_goods 存储过程。在查询分析器中建立存储过程的命令如下:

create procedure proc_goods @toyname varchar(20) as 
select * from 学生 where 姓名=@toyname

4、使用 EXECUTE 语句执行存储过程并观察结果。命令如下: 

exec proc_goods 王宏

5、在查询分析器中使用 drop procedure 删除上面建立的存储过程。

drop procedure proc_s
drop procedure proc_goods

删除后用exec proc_goods等语句再试试,已经无法查找。

实验十 事务的使用

一、实验目的

熟练掌握事务的概念;

掌握使用事务的方法。

二、实验准备

1.熟悉SQL SERVER 2000设计环境;

2.熟悉事务的概念及创建和结束的方法

三、 实验内容

1、有一个账户表,如表三所示,请用企业管理器或查询分析器创建它,并输入数据。

账户表的结构(account)

字段名称

数据类型

长度

主键

账号

int

4

Y

金额

money

表四  账户表的数据

账号

金额

A

7000

B

5000

2、使用事务,完成由A账户向B账户转4000元。 

3、实验操作:

(1)打开查询分析器,输入如下代码:

    BEGIN TRANSACTION

    UPDATE 账户表 SET 金额=金额-4000 WHERE 账号='A'

    UPDATE 账户表 SET 金额=金额+4000 WHERE 账号='B'

    COMMIT TRANSACTION

   单击工具栏中的运行按钮,运行命令,完成转账。

(2) 设置事务的隔离级别

 打开一个查询分析器,输入如下代码:

SET TRANSACTION ISOLATION LEVEL READ COMMITTED

BEGIN TRANSACTION

UPDATE 账户表 SET 金额=金额-4000 WHERE 账号='A'

 UPDATE 账户表 SET 金额=金额+4000 WHERE 账号='B'

3)单击工具栏中的运行按钮,启动一个转账的事务,但并未提交事务。

再打开一个查询分析器,输入如下代码:

BEGIN TRANSACTION

SELECT * FROM 帐户表

单击工具栏中的运行按钮,看看有何反映?

在不同事务的隔离级别下,应有不同的结果,在默认事务隔离级别下(READ COMMITTED),应等待另一个事务的完成。切换到第一个查询分析器窗口,输入“Commit”或“Rollback”,看看第二个查询分析器窗口的反映。

反复更改隔离级别,看看结果的变化。 

四、 实验过程

1、进入查询分析器,参见进入查询分析器演示。

2、在查询分析器的命令编辑窗口输入SQL语句,点击执行键 ►,将执行SQL语句。参见执行SQL语句的演示。

3、在调试程序过程中,可以用鼠标选择某些要执行的SQL语句,再点击执行键,执行选择的语句。参见执行SQL语句的演示。

4、 注意:在各个表中插入数据的顺序,首先在父表中插入数据,然后在子表中插入数据。另外,由于表的定义中包含完整性约束的定义,所以,当主码重复,或者外码不是被参照表的有效值时,系统将拒绝插入的数据。

5、保存调试通过的SQL程序。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钻仰弥坚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值