SQL Server存储过程

一 、什么是存储过程
存储过程(procedure)是SQL语句和控制流语句的预编译集合。存储过程存储在数据库内,可由应

用程序通过一个调用执行,而且允许用户声明变量,逻辑控制语句以及其他强大的编程功能。存

储过程可分为系统存储过程以及用户自定义存储过程。
存储过程的优点,允许模块化程序设计,允许更快地执行,减少网络流量。

二、 常见的系统存储过程
系统存储过程是一组预编译的sql 语句,提供了管理数据库和更新表的机制,并充当从系统表中

检索信息的快捷方式。
常见的系统存储过程。
系统存储过程 说明
sp_databases 列出服务器上所有数据库
sp_helpdb 报告有关数据库或者所有数据库的信息
sp_renamedb 更改数据库的名称
sp_tables 返回当前环境下可查询的对象列表
sp_columns 返回某个表列的信息
sp_help 返回某个表的所有信息
sp_helpconstraint 返回某个表的约束
sp_helpindex 返回某个表的所有索引
sp_stored_procedures 列出当前环境中的所有存储过程
sp_password 修改登录帐户的密码
xp_cmdshell 运行DOS命令

三 、用户自定义的存储过程
除了使用系统存储过程,用户还可以创建自己的存储过程。创建存储过程的语句为:

create procedure
1 、创建不带参数的存储过程
创建存储过程语法:
create proc[edure] 存储过程名
[{@参数 数据类型}[=默认值][output],
........
{@参数N 数据类型}[=默认值][output]]
as sql语句

例句:

if exists(select * from sysobjects where name='proc_stu')
drop procedure proc_stu
go
create procedure proc_stu
as
declare @avgage float;
select @avgAge=avg(stuage) from stuinfo
if (@avgage>20)
   begin
    print '平均年龄大于岁,年龄最大的为'
    select top 1 stuname from stuinfo order by stuage desc
   end
else
   begin
    print '平均年龄不到岁,年龄最小的为'
    select top 1 stuname from stuinfo order by stuage
   end

2 、创建带输入参数的存储过程

if exists(select * from sysobjects where name='proc_stu2')
drop procedure proc_stu2
go
create procedure proc_stu2
@age int
as
declare @avgage float;
select @avgAge=avg(stuage) from stuinfo
if (@avgage>@age)
   begin
    print '平均年龄大于'+convert(varchar,@age)+'岁,年龄最大的为'
    select top 1 stuname from stuinfo order by stuage desc
   end
else
   begin
    print '平均年龄不到'+convert(varchar,@age)+'岁,年龄最小的为'
    select top 1 stuname from stuinfo order by stuage
   end
exec proc_stu2



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值