DECLARE @Test VARCHAR(500)--SET @Test = 'SELECT * [tb_User] WHERE [Name] LIKE '%\李%' ESCAPE '\''  -- 执行失败
--SET @Test = 'SELECT * [tb_User] WHERE [Name] LIKE '%李%' '   -- 执行失败
SET @Test = N'SELECT * [tb_User] WHERE [Name] LIKE ''%李%'' '  -- 执行失败
--SET @Test = 'SELECT * [tb_User] WHERE [Name] LIKE '%[李]%' '  -- 执行失败EXEC @Test
三条语句全部执行失败,啥原因呀。
PS:由于某些原因必须得用动态组成sql语句,我知道直接写SELECT * FROM TABLE WHERE LIKE '%李%' 肯定没错。谢谢呀。

解决方案 »

  1.   


    DECLARE @Test VARCHAR(500)SET @Test = N'SELECT * FROM [tb_User] WHERE [Name] LIKE ''%李%'' '  -- 执行失败
    EXEC @Test
      

  2.   

    EXEC( N'SELECT *  FROM NUM WHERE ID LIKE ''%1%''') 你的SQL语句有问题
      

  3.   

    我知道直接写SELECT * FROM TABLE WHERE LIKE '%李%' 肯定没错。 
    你的FROM 少了
      

  4.   

    DECLARE @Test nVARCHAR(500)--设置为NVARCHAR(500)SET @Test = N'SELECT * FROM [tb_User] WHERE [Name] LIKE ''%李%'' '  --加个FROM
    EXEC @Test
      

  5.   

    全部少写了FROM
    EXEC( N'SELECT *  FROM NUM WHERE ID LIKE ''%1%''') 
      

  6.   

    create table #TT
    (
      [Name] varchar(20)
    )
    insert into #TT select '李1'
    insert into #TT select '11李1'
    insert into #TT select '李'
    insert into #TT select 'wang'
    insert into #TT select '张'declare @sql varchar(100)
    set @sql=('select * from #TT where [name] like ''%李%''')
    exec(@sql)Name
    --------------------
    李1
    11李1
    李(3 行受影响)
      

  7.   

    如果是2005建议用
    charindex()
    create table #TT
    (
      [Name] varchar(20)
    )
    insert into #TT select '李1'
    insert into #TT select '11李1'
    insert into #TT select '李'
    insert into #TT select 'wang'
    insert into #TT select '张'
    --1
    declare @sql varchar(100)
    set @sql=('select * from #TT where [name] like ''%李%''')
    exec(@sql)
    --2
    select * from #TT where charindex(N'李',[Name])>0
    Name
    --------------------
    李1
    11李1
    李(3 行受影响)
      

  8.   

    'SELECT * [tb_User] FROM tb WHERE [Name] LIKE ''%李%'' ' 
      

  9.   

    第一,少了from
    第二,exec后面要括号即exec(@test)
      

  10.   

    exec(@test)靠,原来这样呀。第一个我写帖子的时候写错了。其实我sql语句是对的。谢谢各位呀
      

  11.   

    搂主有2处写的不对   1.少写了个FROM
       2.EXEC后的@Test要用()括起来
    DECLARE @Test VARCHAR(500)
    DECLARE @condition nvarchar(100)SET @condition = '%李%'--SET @Test = 'SELECT * [tb_User] WHERE [Name] LIKE '%\李%' ESCAPE '\''  -- 执行失败
    --SET @Test = 'SELECT * [tb_User] WHERE [Name] LIKE '%李%' '   -- 执行失败
    SET @Test = N'SELECT * FROM [First] WHERE [userName] LIKE ''%李%''' -- 执行失败
    --SET @Test = 'SELECT * [tb_User] WHERE [Name] LIKE '%[李]%' '  -- 执行失败EXEC (@Test)
      

  12.   

    --TRY
    SET @Test = N'SELECT * [tb_User] WHERE [Name] LIKE N''%李%'' ' 
      

  13.   

    --TRY
    SET @Test = 'SELECT * FROM [tb_User] WHERE [Name] LIKE N''%李%'' '