存储过程--查询:
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;--结束
调用存储过程
执行结果
存储过程--修改:
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
调用结果: