declare @depatrment varchar(40),@sql varchar(8000)
set @depatrment='all_path_name'
set @sql='select * from table where '+@depatrment+' like '''%信息安全科%'''or all_path_name like'''%易泰%''''
exec(@sql) 

解决方案 »

  1.   

    引号处理有点问题,修改一下:declare @depatrment varchar(40),@sql varchar(8000)
    set @depatrment='all_path_name'
    set @sql='select * from table where '+@depatrment+' like ''%信息安全科%'' or all_path_name like''%易泰%'''
    exec(@sql) 
      

  2.   

    declare @depatrment varchar(500)
    set @depatrment= '''%信息安全科%''or all_path_name like''%易泰%'''declare @sqltext varchar(500)set @sqltext='select * from table where all_path_name like 'set @sqltext=@sqltext+@depatrmentselect @sqltext
      

  3.   

    declare @depatrment varchar(max)
    set @depatrment = '''%信息安全科%'''+'or all_path_name like'+'''%易泰%'''
    declare @cmd varchar (max)
    set @cmd = N'
    select * from table where all_path_name '+ @depatrment
      

  4.   


    create procedure P1 
    @depatrment nvarchar(1000)
    as
    begin
    declare @sql nvarchar(1000)
    set @sql= 'select * from table ' 
    + isnull('where all_path_name like '+quotename(@depatrment ,''''),'')
    print @sql
    --exec(@sql)
    end
    goexec P1 '''%信息安全科%'' or all_path_name like ''%易泰%'''
    /*
    select * from table where all_path_name like '''%信息安全科%'' or all_path_name like ''%易泰%'''
    */drop procedure P1
      

  5.   

    如果要执行的话:create procedure P1 
        @depatrment nvarchar(1000)
    as
    begin
        declare @sql nvarchar(1000)
        set @sql= 'select * from table ' 
                    + isnull('where all_path_name like '+quotename(@depatrment ,''''),'')
        --print @sql
        exec(@sql)
    end
    go
      

  6.   

    执行:USE [cusomp]
    GODECLARE @return_value intEXEC @return_value = [dbo].[GET_DEPARTMENT_NOCOMPLETE_TASK_RankName]
    @ORG_ID = N'%信息安全科%'' or all_path_name like ''%易泰%'SELECT 'Return Value' = @return_valueGO存储过程用到部分declare @depatrment varchar(40),@sql varchar(8000)
    set @depatrment='all_path_name'
    set @sql='select * from #monitorRecordInfo where '+@depatrment+''+@ORG_ID
    print @sql
    exec(@sql) 
    GO报错消息 102,级别 15,状态 1,第 1 行
    '%' 附近有语法错误。(1 行受影响)
    消息 102,级别 15,状态 1,第 1 行
    '%信息安全科%' 附近有语法错误。
    消息 105,级别 15,状态 1,第 1 行
    字符串 '' 后的引号不完整。
      

  7.   

    print @sql:select * from #monitorRecordInfo where all_path_name%信息安全科%' or all_path_name like '%易泰%