我想写一个存储过程,用来执行查询语句(@a传递表名,@b传递查询的内容),这个存储过程可以用,执行完毕后查询的结果不显示,只显示这样一个结果,
存储过程: price.dbo.finder
返回代码 = 0
请高手指点一下怎么把查询的结果显示出来,语句如下:
create     PROC finder
@a varchar(200)='',
@b varchar(200)=''
AS  
begin
declare @c varchar(4000)  
set @c='select '+'* '+'from '+'price.dbo.'+@a+' where '+'工作内容 '+'like''%'+@c+'%'''
exec (@c)
end

解决方案 »

  1.   


    create PROC finder
    @a varchar(200)='',
    @b varchar(200)=''
    AS   
    begin
    declare @c varchar(4000)   
    set @c='select '+'* '+'from '+'price.dbo.'+@a+' where '+'工作内容 '+'like''%'+@b+'%'''
    exec (@c)
    endtry
      

  2.   

    declare @c Nvarchar(4000)
      

  3.   

    create PROC finder
    @a varchar(200)='',
    @b varchar(200)=''
    AS   
    begin
    declare @c varchar(4000)   
    set @c='select * from price.dbo.['+@a+'] where 工作内容 like''%'+@b+'%'''
    exec (@c)
    end
    go
    --调用
    exec price.dbo.finder '表名','值'
      

  4.   

    create PROC finder
    @a varchar(200)='',
    @b varchar(200)=''
    AS   
    begin
    declare @c varchar(4000)   
    set @c='select '+'* '+'from '+'price.dbo.'+@a+' where '+'工作内容 '+'like ''%'+@b+'%'''
    print @c
    --exec (@c)
    end--执行
    exec finder 'table','条件'--结果
    select * from price.dbo.table where 工作内容 like '%条件%'--把print注释掉,然后把exec取消注释就可以了
      

  5.   

    ALTER PROC finder
    @a VARCHAR(200) = '',
    @b VARCHAR(200) = ''
    AS   
    BEGIN
    DECLARE @c VARCHAR(4000)
    SET @c = 'SELECT * FROM price.dbo.'+QUOTENAME(@a)+' WHERE 工作内容 LIKE ''%'+@b+'%'''
    EXEC(@c)
    END