Sql Server存储过程详解

 

存储过程--查询:

复制代码

if (exists (select * from sys.objects where name = 'GetUser')) drop proc GetUser   --判断存储过程是否存在,存在则删除然后重建。
go
create proc GetUser  --创建存储过程 GetUser
@Id int --参数
as 
set nocount on;  --不返回计数,提高应用程序性能
begin --开始
    select * from [dbo].[User] where Id=@Id  --执行sql语句
end;--结束

复制代码

调用存储过程

EXEC GetUser 1;

执行结果

 

 存储过程--修改:

复制代码

if (exists (select * from sys.objects where name = 'UpdateUser')) drop proc UpdateUser   --判断存储过程是否存在,存在则删除然后重建。
go
create proc UpdateUser  --创建存储过程 GetUser
@Id int, --参数
@Name varchar(255),--参数
@Sex int, --参数
@Age int, --参数
@Birthday date --参数
as 
set nocount on;  --不返回计数,提高应用程序性能
begin --开始     
    UPDATE [dbo].[UserInfo] SET [Name]=@Name,[Sex]=@Sex, [Age]=@Age,[Birthday]=@Birthday WHERE ([Id]=@Id) --执行sql语句
end;--结束

复制代码

调用存储过程:

EXEC UpdateUser 1,'赵大1',2,222,'1994-07-16 11:36:27';

执行结果:

 

存储过程分页

复制代码

if (exists (select * from sys.objects where name = 'Page_UserInfo')) drop proc Page_UserInfo   --判断存储过程是否存在,存在则删除然后重建。
go
create proc Page_UserInfo  --创建存储过程 
    @name nvarchar(255),--用户名
    @pageindex int,--第几页
    @pagesize int--一页多少条
as 
set nocount on;  --不返回计数,提高应用程序性能
begin --开始
  declare @pagebefore int;--创建页数
    declare @pagerear int;--创建页数
  declare @condition nvarchar(2000);  --创建where条件
    set @pagebefore=@pagesize*@pageindex; --起始页
    set @pagerear=@pagebefore+@pagesize;--结束页
    set @condition=' where 1=1 ';
    if(@name<>'')
    set @condition=@condition+' and name like ''%'+@name+'%''';
  --创建一个虚拟表插入UserInfo表数据
  --获取分页数据
  --获取总数
    exec('
    declare @table table(
    iid int identity,
    Id int,
    Name nvarchar(20),
    Sex int,
    Age int,
    Birthday datetime
    )
    insert @table
    select * from UserInfo '+@condition+' order by Id desc  
    select * from @table where iid>'+@pagebefore+' and iid<='+@pagerear+'
    select count(*) as rows from @table;');
end;--结束

复制代码

 

调用方式:

EXEC Page_UserInfo  '' ,1,10

调用结果:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值