/*
使用存储过程的优点
1.允许模块化程序设计
2.允许更快的执行
3.减少网络流量
4.可作为安全机制使用
-------------------------------------------------------------------------------------------------------
常用的系统存储过程
sp_databases 列出服务器上的所有数据库
sp_helpdb 报告有关指定数据库或所有数据库的信息
sp_renamedb 更改数据库的名称
sp_tables 返回当前环境下可查询的对象的列表
sp_columns 返回某个列表的信息
sp_help 查看某个表的所有信息
sp_helpconstraint 查看某个表的约束
sp_helpindex 查看某个表的索引
sp_stored_procedures 列出当前环境中的所有存储过程
sp_password 添加或修改登录帐户的密码
sp_helptext 显示默认值,未加密的存储过程,用户定义的存储过程,触发器或试图的实际文本
*/
use stuDB
GO
/*--检测是否存在:存储过程存放在系统表sysobjects中,如果存在就删除--*/
if exists (select * from sysobjects where name='proc_stu')drop procedure proc_stu
GO
--表stuMarks有字段writtenExam(笔试)和labExam(机试)
/*创建无参数的存储过程*/
create procedure proc_stu
as declare @writtenAvg float,@labAvg float --- 定义笔试平均分和机试平均分的变量
select @writtenAvg = avg(writtenExam),@labAvg=avg(labExam) from stuMarks
print '笔试平均分: '+ convert(varchar(50),@writtenAvg)
print '机试平均分: '+ convert(varchar(50),@labAvg)
if(@writtenAvg>70 and @labAvg>70)
print '本班考试成绩:优秀 '
else
print '本班考试成绩:较差 '
print '--------------------------------------------------------------------------------------------------'
GO
/*--调用执行存储过程--*/
exec proc_stu
------------------------------------------------------------------------------------------------------------
/*创建带输入参数的存储过程*/
create procedure proc_stu
@writtenAvg float -- 参数1
@labAvg float -- 参数2
as
SQL语句
。。。。。。
--调用执行存储过程
exec proc_stu 60.0, 70.0 -- 带2个参数
使用存储过程的优点
1.允许模块化程序设计
2.允许更快的执行
3.减少网络流量
4.可作为安全机制使用
-------------------------------------------------------------------------------------------------------
常用的系统存储过程
sp_databases 列出服务器上的所有数据库
sp_helpdb 报告有关指定数据库或所有数据库的信息
sp_renamedb 更改数据库的名称
sp_tables 返回当前环境下可查询的对象的列表
sp_columns 返回某个列表的信息
sp_help 查看某个表的所有信息
sp_helpconstraint 查看某个表的约束
sp_helpindex 查看某个表的索引
sp_stored_procedures 列出当前环境中的所有存储过程
sp_password 添加或修改登录帐户的密码
sp_helptext 显示默认值,未加密的存储过程,用户定义的存储过程,触发器或试图的实际文本
*/
use stuDB
GO
/*--检测是否存在:存储过程存放在系统表sysobjects中,如果存在就删除--*/
if exists (select * from sysobjects where name='proc_stu')drop procedure proc_stu
GO
--表stuMarks有字段writtenExam(笔试)和labExam(机试)
/*创建无参数的存储过程*/
create procedure proc_stu
as declare @writtenAvg float,@labAvg float --- 定义笔试平均分和机试平均分的变量
select @writtenAvg = avg(writtenExam),@labAvg=avg(labExam) from stuMarks
print '笔试平均分: '+ convert(varchar(50),@writtenAvg)
print '机试平均分: '+ convert(varchar(50),@labAvg)
if(@writtenAvg>70 and @labAvg>70)
print '本班考试成绩:优秀 '
else
print '本班考试成绩:较差 '
print '--------------------------------------------------------------------------------------------------'
GO
/*--调用执行存储过程--*/
exec proc_stu
------------------------------------------------------------------------------------------------------------
/*创建带输入参数的存储过程*/
create procedure proc_stu
@writtenAvg float -- 参数1
@labAvg float -- 参数2
as
SQL语句
。。。。。。
--调用执行存储过程
exec proc_stu 60.0, 70.0 -- 带2个参数