📄 06.txt
字号:
[例6-1]
CREATE PROCEDURE getstudent_1
AS
SELECT *
FROM 选课表
WHERE 分数>65
[例6-2]
CREATE PROCEDURE getstudent_2
@minfs int,
@maxfs int
AS
SELECT *
FROM 选课表
WHERE 分数 BETWEEN @minfs and @maxfs
[例6-3]
CREATE PROCEDURE getstudent_3
@xuehao varchar(12),
@maxfs int output,
@minfs int output
AS
SELECT *
FROM 选课表
WHERE 学号=@xuehao
SELECT @maxfs=max(分数)
FROM 选课表
WHERE 学号=@xuehao
SELECT @minfs=min(分数)
FROM 选课表
WHERE 学号=@xuehao
[例6-4]
CREATE TRIGGER trginsstudent
ON 学生表
FOR INSERT
AS
BEGIN
DECLARE @xh varchar(12)
SELECT @xh=inserted.学号
FROM inserted
IF NOT EXISTS (SELECT 学号FROM 学生表WHERE 学号=@xh)
DELETE 学生表 WHERE 学号=@xh
END
[例6-5]
CREATE TRIGGER trgupstudent
ON 选课表
FOR UPDATE
AS
IF UPDATE (分数)
BEGIN
RAISERROR('不能修改课程分数',16,10)
ROLLBACK TRANSACTION
END
GO
[例6-6]
CREATE TRIGGER trgdelstudent
ON 学生表
FOR DELETE
AS
BEGIN
DECLARE @xh varchar(12)
SELECT @xh=deleted.学号
FROM deleted
DELETE 选课表 WHERE 学号=@xh
END
GO
[例6-7]
CREATE TRIGGER safedb
ON 实例数据库
FOR DROP_TABLE,ALTER_TABLE
AS
PRINT '禁止删除或修改数据库中的表'
ROLLBACK
[例6-8]
DECLARE 学生CURSOR
FOR
SELECT 学号,姓名,性别,出生日期,入学日期
FROM 学生表
WHERE 院系名称='国贸系'
FOR READ_ONLY
GO
[例6-9]
DECLARE 选课CURSOR
DYNAMIC
FOR
SELECT 学号,分数
FROM 选课表
WHERE 课程号=''
FOR UPDATE OF 学号
GO
[例6-10]
OPEN 选课
GO
[例6-11]
FETCH NEXT FROM 选课
GO
[例6-12]
CLOSE 选课
[例6-13]
DEALLOCATE 学生
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -