请教!如何在存储过程中传入Where语句?!(50分)

  • 主题发起人 主题发起人 XingHui
  • 开始时间 开始时间
X

XingHui

Unregistered / Unconfirmed
GUEST, unregistred user!
在一个存储过程中得到查询的结果,然后在得到的查询结果,需要加入条件语句进一步查询,
例如:
存储过程1,
Create Proc P1
declare @WhereStr (varchar 200)
as
select * from T1
--请问在这里是否加入一个Where语句这个话句是通过@WhereStr传入的。

 
用动态SQl
 
动态SQl?是什么意思?
楼上的能不能给我一个例子?!
谢谢了?
 
Create Proc P1
declare @WhereStr (varchar 200)
as
DECLARE @sSQL VARCHAR(8000)
SET @sSQL = 'select * from T1 ' + @WhereStr
Execute(@sSQL)
 
exec('select * from T1 ' + @WhereStr)
 
sql server可以直接怎么写的
Create Proc P1
declare @WhereStr (varchar 200)
as
select * from T1 where id =@wherestr
 
declare pls_st varchar(200)
pls_st := 'Select * from '||@wherestr
execute immediate pls_st
 
Create Proc P1
declare @WhereStr (varchar 200)
as
DECLARE @sql VARCHAR(8000)
SET @sql = 'select * from T1 ' + @WhereStr
Exec sp_sqlexec @sql
用系统的命令
 
呵!楼上的几位,使用的都是同一种方法!
主要是我做的存储过程太大,并且内部含有大量的参数,
如果按楼上的各位的方法调整会比较麻烦,
所以小弟才来DFW看看有什么好的办法,将Select 部分与Where 部分合起来查询。

 
???大家都没有办法了?

 
问题讲清楚一点
 
我这里有一个存储过程,
形式:
Create Proc P1
declare @WhereStr (varchar 200)
as
DECLARE @sSQL VARCHAR(8000)
select * from T1 --注意此时没有一个查询条件,和到的结果是一个查询的全部记录。
现在我需要通过一个用户传入的参数@WhereStr得到一个限定条件的结果集,并且,我并不
希望对我的select * from T1 部分做改动并将@WhereStr加到select * from T1
之后,然后执行!

 
sorry! down了
查询全部记录时传入null,有条件时传条件
 
xly133,你还是没有明白我的意思!
现在我是不知道Select 部分怎么与 Where 部分联接起来,
目前看来好像只能用字符串来连接,既你及楼上所说的方法。
但是,我希望的是能有另外的一种方法来实现?!
 
那就不好通过存储过程了,使用ado中的Filter来过滤得到的结果集吧!
 
我另外想到一个办法了来解决这个问题!

其实,还是回到了各位以前说的那种形式,在此谢过各位了。
 
后退
顶部