CREATE PROCEDURE  pro_name 
@search_type varchar(50),
@search_values varchar(50)
AS
BEGIN
EXEC (select * from table_name where '+@search_type+'  like '%+@search_values+%' order by id desc)    --多了一个'
END
GO
--如果还是有错,请先查看你的SQL语句,然后在EXEC ,查看用print

解决方案 »

  1.   

    错了是我掉了一个'
    但是这样还是报错
    BEGIN
    EXEC ('select * from table_name where '+@search_type+'  like '%+@search_values+%' order by id desc')
      

  2.   

    CREATE PROCEDURE  pro_name 
    @search_type varchar(50),
    @search_values varchar(50)
    AS
    declare @sql nvarchar(1000)
    set @sql=N'select * from table_name where '
             +quotename(@search_type)
             +' like ''%''+@search_values+''%'' order by id desc'
    exec sp_executesql @sql,N'@search_values varchar(50)',@search_valuesGO
      

  3.   

    CREATE PROCEDURE  pro_name 
    @search_type varchar(50),
    @search_values varchar(50)
    AS
    BEGIN
      EXEC ('select * from table_name where '+@search_type+'  like ''%'+@search_values+'%'' order by id desc')
    END
    GO
      

  4.   


    CREATE PROCEDURE  pro_name 
    @search_type varchar(50),
    @search_values varchar(50)
    AS
    Declare @Sql Varchar(2000)BEGIN
    Set @Sql='select * from table_name where '+
                 @search_type +
                 '  like % ' +
                  @search_values+
                     '%'+
                    ' order by id desc'Select (@Sql) as 调试  ----查看SQL 语句是否正确
    EXEC (@Sql )
    END
    GO
      

  5.   

    CREATE PROCEDURE  pro_name 
    @search_type varchar(50),
    @search_values varchar(50)
    AS
    BEGIN
      EXEC ('select * from table_name where '+@search_type+'  like ''%'+@search_values+'%'' order by id desc')
    END
    GO
    在SQL中引用到’时,需要写''