-----with encryption----存过加密
alter proc p_ceshi
as
select * from dbo.users
-----------创建一个存过,用来显示学生姓名,课程名,成绩
create procedure p_xsinfo
as
select * from xs join xs_kc on xs.学号=xs_kc.学号 join kc on kc.课程号=xs_kc.课程号
----------------使用存过
exec p_xsinfo
--1、创建一个存过,同时在学生表和课程表中插入一条数据
create proc p_1
as
INSERT INTO xs
(学号, 姓名, 专业名, 性别, 出生时间, 总学分, 备注)
VALUES ('2','2','3','4','5','6','7')
INSERT INTO kc
(课程号, 课程名, 开课学期, 学时, 学分)
VALUES ('1', '2', 3, 4, 5)
****--3、创建一个存过,删掉一条数据,再将删掉的数据写回原表
create proc p_3
as
select * into #a from kc
delete from kc
insert into kc select * from #a
drop table #a
************************************************************
------------------带参数的存过
create proc p_getxs
(
@xm char(8)
)
as
select * from xs where 姓名=@xm
exec p_getxs '张强民'
***********************************************************
create proc p_bz
(
@xh char(6),
@bz varchar(50)
)
as
update xs set 备注=@bz where 学号=@xh
exec p_bz '001204','你是一个好人,可惜不适合我'
****************************************************************************************************************
--------------------------------------------------------创建一个存过,添加一门新的课程
alter proc p_kc
(
--@kch char(3), --课程号,通过自动计算完成,所以此处注释了
@kcm char(16), --课程名
@xs int, --学时
@kkxq int=2, --开课学期
@xf int=3 --学分
)
as
---------------变量定义
declare @id int --定义一个临时变量
select @id=max(课程号) from kc --获取课程的最大编号,并赋值给变量
set @id=@id+1 --设置变量的值
--插入数据时,使用最大编号+1 当做新的课程号
INSERT INTO kc (课程号, 课程名, 开课学期, 学时, 学分) VALUES (@id,@kcm,@kkxq,@xs,@xf)
************************************************************************************************
--带输出参数的存过
---创建一个存过,用来获取专业人数,并保存下来
alter proc p_count
(
@count1 int output, --输出参数可以将存过中的内容输出到存过外部使用
@count2 int output
)
as
select @count1=count(*) from xs where 专业名='计算机'
select @count2=count(*) from xs where 专业名='通信工程'
----变量定义----
declare @aa int
--变量赋值
set @aa='555'
--查询赋值
select @aa='学号' from xs where name='李四'
---变量使用
select @aa
declare @c int ,@d int
exec p_count @c output,@d output
print @c
print @d
substring