1. 在数据库stuManager中的student表中创建一个学号的聚集索引,并手动按此索引查
询姓陈的学生的信息。
2. 定义描述学生字段的数据类型student_num,要求为char(6),不为空
3. 创建一个规则,规则名为RU_Student,要求将该规则绑定到表Student的字段stage上,该字段的值为16—25
4. 定义bank表中的银行转账事务
5. 定义事务向stumanager数据库的选课表中插入学号=‘20030021’的多条记录,并检验
若报名课程超过4门,则回滚事务,即报名无效,否则成功提交。选课表(学号,课号,
报名号),假设要插入的记录为以下三条:
‘20030021’,‘01’,1 ‘20030021’,‘02’,2 ‘20030021’,‘03’,3 根据以上要求编写程序,并指出本题定义的事务是否成功提交。
参
1.在数据库stuManager中的student表中创建一个学号的聚集索引,并手动按此索引查询姓陈的学生的信息。 1.USE stuManager
GO
IF EXISTS (SELECT name FROM sysindexes WHERE name = 'IX_stuNo') DROP INDEX student.IX_stuNo
CREATE CLUSTERED INDEX IX_stuNo ON student(stuNo) GO
SELECT * FROM student(INDEX=IX_IX_stuNo) WHERE stuName like '陈'
2.use stuManager
exec sp_addtype 'student_num','char(6)','not null'
3.
USE stuManager
GO
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'Ru_student' and xtype='R') drop rule Ru_student go
create rule Ru_student as @a between 16 and 25
exec sp_bindrule 'ru_student','student.stage'
4.使用事务解决银行转帐问题
BEGIN TRANSACTION
/*--定义变量,用于累计事务执行过程中的错误--*/ DECLARE @errorSum INT
SET @errorSum=0 --初始化为0,即无错误
/*--转帐:张三的帐户少1000元,李四的帐户多1000元*/ UPDATE bank SET currentMoney=currentMoney-1000 WHERE customerName='张三'
SET @errorSum=@errorSum+@@error
UPDATE bank SET currentMoney=currentMoney+1000 WHERE customerName='李四'
SET @errorSum=@errorSum+@@error --累计是否有错误 IF @errorSum<>0 --如果有错误 BEGIN
print '交易失败,回滚事务' ROLLBACK TRANSACTION END
ELSE BEGIN
print '交易成功,提交事务,写入硬盘,永久的保存' COMMIT TRANSACTION END
GO 5.
Use stumanager
if exists (select * from sysobjects where name='elective' and xtype='u') drop table elective go
create table elective ( ) go
Begin transaction
Insert elective(stuNo,courseNo,number) values('20030021','01',1) Insert elective(stuNo,courseNo,number) values('20030021','01',2) Insert elective(stuNo,courseNo,number) values('20030021','01',3)
Declare @num int
Set @num=(select count(*) from elective where stuNo='20030021')
stuNo char(8), courseNo char(3), number int
If @num>4 Begin end Else Begin
Commit transaction Print '报名成功!' end go
Rollback transaction Print '超过报名门数'
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.com 版权所有 湘ICP备2023021991号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务