查询条件动态指定,即:select field1,field2,field3 into #temp from testtable where 1=1 +动态传入存储过程判断条件(如: and field1=2)请问怎么解决,我用exec(查询语句变量),然后再用:select * from #temp 但这时 #temp 已经无效了,真是头痛,还请指点一二.
在存储过程里select * from #temp 不过这时要保证这个select语句是存储过程中唯一或者至少是第一个被执行的语句
或者,换种方式;你可以写返回值为tables的function 具体的可以看帮助的示例;很清楚的。
CREATE FUNCTION SalesByStore (@storeid varchar(30)) RETURNS TABLE AS if @storeid = '' RETURN (SELECT title, qty FROM sales s, titles t WHERE s.stor_id = @storeid and t.title_id = s.title_id) else if ...
不知道你用临时表干什么exec(' select field1,field2,field3 from testtable where '+queryStr+' ')
不过这时要保证这个select语句是存储过程中唯一或者至少是第一个被执行的语句
具体的可以看帮助的示例;很清楚的。
RETURNS TABLE
AS
if @storeid = ''
RETURN (SELECT title, qty
FROM sales s, titles t
WHERE s.stor_id = @storeid and
t.title_id = s.title_id)
else if ...
select field1,field2,field3 from testtable where '+queryStr+'
')