您的位置:首页 > 数据库

带查询参数的SQL server存储过程

2012-10-22 16:56 561 查看
--分页查询的存储过程

--检查该存储过程名称是否已经存在
if exists(select * from sysobjects where name='sp_select_rkdetails')
drop proc sp_select_rkdetails
go

--创建存储过程
create proc sp_select_rkdetails
(
@pageIndex int, --当前页码
@pageSize int, --每页显示的数目
@orderId varchar(50), --入/出库单ID
@bianma varchar(50), --产品编码
@cpXH varchar(50) --产品型号
)
as

--声明一个字符串容器,装sql语句
DECLARE @sq_sql varchar(1000)

--第一次给SQL语句赋值
set @sq_sql = N'select top @pageSize * from tb_rkdetails
where k_id not in(select top @pageSize*(@pageIndex-1) from tb_rkdetails)'

--判断该参数是否为空
if @orderId is not null
begin

--如果不为空,则追加入SQL语句中。这里 注意 单引号的转义。两个单引号,在一起表示一个单引号
set @sq_sql = @sq_sql+ N' and k_by1 like N''%'+@orderId+'%'''
end
if @bianma is not null
begin
set @sq_sql = @sq_sql+ N' and k_cpBianma like N''%'+@bianma+'%'''
end
if @cpXH is not null
begin
set @sq_sql = @sq_sql+ N' an k_cpXHnumber like N''%'+@cpXH+'%'''
end

--执行SQL语句
Execute @sq_sql
go
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: