读书人

调用存储过程出错解决方案

发布时间: 2013-01-25 15:55:29 作者: rapoo

调用存储过程出错


--Drop PROCEDURE [dbo].[FenYe]
CREATE PROCEDURE [dbo].[FenYe]
@curPage INT , --当前页数
@pageSize INT , -- 每页显示的数量
@th VARCHAR(200) = '' , --查询,图号
@mc VARCHAR(200) = '' , --查询,名称
@tm VARCHAR(200) = '' , --查询,条码
@gysdm VARCHAR(200) = '' --查询,供应商代码
AS
BEGIN

DECLARE @before INT ,
@sql NVARCHAR(1000)

SET @before = ( @curpage - 1 ) * @pageSize
SET @sql = 'select top ' + CAST(@pageSize AS VARCHAR(10))
+ ' th,bh,mc,wlbh,tx,dw,nx,xfdw_dm,xfdw_mc,no_bh,rq,bz,glry,bgy From tm_wlbh
where id not in (Select top ' + CAST(@before AS VARCHAR(10))
+ ' id from tm_wlbh where (th like ''%''+'+@th+'+''%'' or bh like ''%''+'+@th+'+''%'') and mc like ''%''+'+@mc+'+''%'' and wlbh like ''%''+'+@tm+'+''%'' and xfdw_dm like ''%''+'+@gysdm+'+''%'' order by id)'
EXEC (@sql)

END

调用 exec FenYe 1,30,'','','','' 或者 exec FenYe 1,30 可以查到数据,

但是给@th赋值的时候

exec FenYe 1,30,'a','','',''

提示:列名 'a' 无效。

希望指点一下错误,谢谢。
存储 sql
[解决办法]
--Drop PROCEDURE [dbo].[FenYe] 
ALTER PROCEDURE [dbo].[FenYe]
@curPage INT , --当前页数
@pageSize INT , -- 每页显示的数量
@th VARCHAR(200) = '' , --查询,图号
@mc VARCHAR(200) = '' , --查询,名称
@tm VARCHAR(200) = '' , --查询,条码
@gysdm VARCHAR(200) = '' --查询,供应商代码
AS
BEGIN

DECLARE @before INT ,
@sql NVARCHAR(1000)

SET @before = ( @curpage - 1 ) * @pageSize
SET @sql = 'select top ' + CAST(@pageSize AS VARCHAR(10))


+ ' th,bh,mc,wlbh,tx,dw,nx,xfdw_dm,xfdw_mc,no_bh,rq,bz,glry,bgy From tm_wlbh
where id not in (Select top ' + CAST(@before AS VARCHAR(10))
+ ' id from tm_wlbh where (th like ''%''+''' + @th
+ '''+''%'' or bh like ''%''+''' + @th
+ '''+''%'') and mc like ''%''+''' + @mc
+ '''+''%'' and wlbh like ''%''+''' + @tm
+ '''+''%'' and xfdw_dm like ''%''+''' + @gysdm
+ '''+''%'' order by id)'
EXEC (@sql)

END

读书人网 >SQL Server

热点推荐