日期:2014-05-20  浏览次数:20401 次

请问一个过程传递参数的问题?
我想通过下面的方式传递过程参数应该怎么写?
比如我写下面一个过程
create   Procedure   QQ_P_SELECT
@TJ   VARCHAR(200)
as
begin                        
SELECT   M.DEPT_NAME,T.HTH,W.NAME,X.CJWZ,B.DFID,B.BH,B.DFJE,B.XBD,B.XSYBD,B.JBD,B.JSYBD,B.QT,B.SHBJ  
FROM   BM   M,HT   T,WLDW   W,QQ_DFJLB   B,QQ_DBXXB   X  
WHERE   M.DEPTID=T.DEPTID   AND   T.GHDWDM=W.CODE   and   T.HTH=B.HTH   and   B.BH=X.BH   @TJ   order   by   M.DEPT_NAME,T.HTH
end

参数@TJ是where里的其它,是一个动态字符窜,例如:@TJ= '   and   T.HTH=xxx '或者@TJ= '   and   B.BM=xxx '等等

应该怎么写传入的参数,我上面的写法值行不过去?



------解决方案--------------------
declare @sql varchar(3000)
set @sql= 'SELECT M.DEPT_NAME,T.HTH,W.NAME,X.CJWZ,B.DFID,B.BH,B.DFJE,B.XBD,B.XSYBD,B.JBD,B.JSYBD,B.QT,B.SHBJ
FROM BM M,HT T,WLDW W,QQ_DFJLB B,QQ_DBXXB X
WHERE M.DEPTID=T.DEPTID AND T.GHDWDM=W.CODE and T.HTH=B.HTH and B.BH=X.BH '+ @TJ + ' order by M.DEPT_NAME,T.HTH '


EXEC( @sql)

*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

最新版本:20070130

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html