Sqlsever存储过程总结

if exists(select * from sysdatabases
where name='testdb')
drop database testdb
go
create database testdb
go
create table login
(
uid int primary key identity(1,1),
uname varchar(20),
upwd varchar(50)
)
go
insert login values('admin','admin')
insert login values('test','test')
go
--最简单的存储过程
create procedure pro_add
as
insert login values('user','user')
go
pro_add
--带输入参数的存储过程(注册一个新用户)
create proc pro_insert
@name varchar(10),  --形参
@pwd varchar(50)
as
insert login values(@name,@pwd)
go
exec pro_insert '张三','123'   --实参
go
--带输出参数的存储过程(登陆)
alter proc pro_login
@name varchar(10),
@pwd varchar(50),
@message varchar(50) output
as
if (select count(*) from login where uname=@name)>0
begin
  --用户名存在
  if(select count(*) from login where [email=upwd=@pwd]upwd=@pwd[/email] and uname=@name)>0
  begin
   --密码正确
   set @message ='登陆成功'
  end
  else
  begin
   set @message='密码错误'
  end
end
else
begin
  set @message='用户名不存在'
end
go
declare @m varchar(20)
exec pro_login 'admin','user',@m output
print @m
go
--带返回值得存储过程(判断用户名是否存在,如果存在则返回1,否则返回0)
alter proc pro_return
@name varchar(20)
as
if(select count(*) from login where uname=@name)>0
  return 1
else
  return 0
go
declare @i varchar(20)
exec @i=pro_return 'admin'
print @i
go
--带返回结果集的存储过程
alter proc pro_select
@row int
as
declare @str varchar(200)
set @str='select top '+cast( @row as varchar(10)) +' * from login'
exec(@str)  --执行字符串SQL语句
go
exec pro_select 3

如果有不足的地方,希望大家帮我补充下,毕竟自己还只是学生嘛!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值