以下是我写的存储过程,有错哪位大哥帮忙看下,怎么拼SQl语句
declare @name varchar(20)
declare @key varchar(20)
declare @strSql varchar(200)
set @name='needCode'
set @key='我'
SELECT @key = '%' + RTRIM(@key) + '%';
set @strSql='select * from tb_taskStatistic 
where'+' '+ @name+' '+'like '+ @key
execute (@strSql)

解决方案 »

  1.   

    declare @name nvarchar(20)
    declare @key nvarchar(20)
    declare @strSql nvarchar(200)
    set @name=N'needCode'
    set @key=N'我'
    SELECT @key = N'%' + RTRIM(@key) + N'%';
    set @strSql=N'select * from tb_taskStatistic 
    where'+N' '+ @name+N' '+N'like '''+ @key + ''''
    PRINT @strSql
    execute (@strSql)
      

  2.   

    set @key = '''%' + RTRIM(@key) + '%'''
      

  3.   

    set @strSql='select * from tb_taskStatistic  
    where'''+ @name+'''like '''+ @key+''''
    execute (@strSql)
      

  4.   

    declare @name varchar(20)
    declare @key varchar(20)
    declare @strSql varchar(200)
    set @name='user_name'
    set @key = N'我'
    SELECT @key = '%' + @key+ '%'
    set @strSql='select * from tb_taskStatistic where '''+ @name+''' like '''+ @key+''''
    print @strSql
    execute (@strSql)
      

  5.   

    declare @name varchar(20)
    declare @key varchar(20)
    declare @strSql varchar(200)
    set N'needCode'
    set @key = N'我'
    SELECT @key = '%' + @key+ '%'
    set @strSql='select * from tb_taskStatistic where '''+ @name+''' like '''+ @key+''''
    print @strSql
    execute (@strSql)  
      

  6.   

    我搜索了下,引用邹大侠在另外个帖子的回答:
    sql   server有两个转义符: 
    '       默认情况下,   '是字符串的边界符,   如果在字符串中包含 ',   则必须使用两个 ',   第1个 '就是转义符