这个问题也是刚刚遇到,求各位大神解答,谢谢。

解决方案 »

  1.   

    转义一般都在通配符上,如[]%_这类字符上,(:这样的不需要
    而且转义字符的话[]本身就是,如要查找%的或者_的,可以 like '%[%]%'escape:
    select * from tb where col like '%\_%' escape '\' or field like '%\%%' escape '\'
      

  2.   

    declare @t table([test] nvarchar(5))
    Insert @t
    select N'11%22' union all
    select N'11%33' union all
    select N'12%33' union all
    select N'1_%33'
    --1
    --使用ESCAPE关键字定义转义符。在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。
    --如搜索包含'1%'的紀錄
    select * from @t where [test] like '%1/%%' escape '/'
    /*
    test
    -----
    11%22
    11%33
    (2 個資料列受到影響)
    */
    --2
    --允许在字符串中搜索通配符而不是将其作为通配符使用
    select * from @t where [test] like '%1/_%' escape '/'
    /*
    test
    -----
    1_%33
    */
      

  3.   

    就在SQL 2008里边插入的时候,那两个特殊符号不让插。
      

  4.   

    你的语句是如何的?报错信息又是如何?我这里模拟了没问题,能成功插入
    CREATE TABLE #t(a NVARCHAR(16))
    INSERT INTO #t
    SELECT '('
    UNION ALL 
    SELECT ':'CREATE TABLE #t2(a VARCHAR(16))
    INSERT INTO #t2
    SELECT '('
    UNION ALL 
    SELECT ':'