实验九 存储过程的使用
一、实验目的
熟练掌握使用 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程序。