SQL数据库实验报告实验六133人阅读
create procedure letters_print
as
declare @count int
set @count=0
while @count<26
begin
print char(ascii('a')+@count)
set @count=@count+1
end
execute letters_print
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
2
CREATE PROCEDURE stu_info @name varchar(40)='刘卫平'
AS
SELECT a.学号,姓名,课程编号,分数
FROM student_info a inner join grade ta
ON a.学号=ta.学号
WHERE姓名=@name
execute stu_info '马东'
drop procedure stu_info
0003 马东 0001 87
0003 马东 0002 76
0003 马东 0003 88
0003 马东 0004 78
0003 马东 0005 68
3
()
CREATE PROC stu_grade
AS
SELECT s.姓名,c.课程名称,g.分数
FROM student_info s,curriculum c,grade g
WHERE s.学号='0001'and c.课程编号=g.课程编号and g.学号='0001' ()
EXECute stu_grade
刘卫平大学计算机基础84 刘卫平 C语言程序设计94 刘卫平 SQL Server数据库及应用91 刘卫平英语90
刘卫平高等数学81 ()sp_rename stu_grade,stu_g
4()CREATE PROC stu_p_g @name varchar(40)
AS
SELECT s.学号,c.课程名称,g.分数
FROM student_info s,curriculum c,grade g
WHERE s.姓名=@name and c.课程编号=g.课程编号and g.学号=s.学号
()EXEC stu_p_g '刘卫平'
0001 大学计算机基础84
0001 C语言程序设计94
0001 SQL Server数据库及应用91
0001 英语90
0001 高等数学81
drop procedure stu_p_g
()
sp_helptext stu_p_g
CREATE PROC stu_p_g @name varchar(40)
AS
SELECT s.学号,c.课程名称,g.分数
FROM student_info s,curriculum c,grade g
WHERE s.姓名=@name and c.课程编号=g.课程编号and g.学号=s.学号
5()CREATE PROC stu_en
WITH ENCRYPTION AS
SELECT*FROM student_info
WHERE性别='男'
()EXEC stu_en
0001 刘卫平男1980-10-01 00:00:00.000 衡阳市东风路78号NULL 0002 张卫民男1980-12-02 00:00:00.000 东阳市八一北路25号NULL 0003 马东男1980-07-04 00:00:00.000 长岭市五一路785号NULL 0004 钱达理男1980-05-10 00:00:00.000 滨海市洞庭大道278号NULL 0005 东方牧男1980-07-13 00:00:00.000 东方市中山路25号NULL 0006 郭文斌男1980-06-04 00:00:00.000 长岛市解放路25号NULL
()DROP PROCEDURE stu_en
6()CREATE PROC stu_g_r @xh int
AS
SELECT c.课程名称,g.分数
FROM student_info s,curriculum c,grade g
WHERE s.学号=@xh and s.学号=g.学号and c.课程编号=g.课程编号
()EXEC stu_g_r 0002
大学计算机基础79
C语言程序设计76
SQL Server数据库及应用72
英语73
高等数学93
()DROP PROC stu_g_r
7
8
CREATE TRIGGER insert_g_tr
ON grade FOR INSERT
AS
IF EXISTS(SELECT课程编号FROM curriculum WHERE课程编号=(SELECT课程编号FROM Inserted))
BEGIN
PRINT'记录插入成功'
END
ELSE
BEGIN
PRINT'不能插入记录'
END
9 CREATE TRIGGER de_c_tr
before delete
ON curriculum for each row
begin
rasie_application_error(-20001,'不能被去掉此表中的记录') end