exec('insert into countList(userName,title,[titleLink],[type],'+@ziduan+')
values('+@userName+','+@title+','+@titleLink+','+@type+','+@number+')')
其中 @titleLink 传过来的值含有特殊字符 ?号,
程序总是报错 '?' 附近有语法错误。
如果没有问号程序是对的。 这个语句怎么写才对?

解决方案 »

  1.   

    在程序里转义下吧!程序里 ? 弄到SQL里是当做一个变量的!
      

  2.   

    exec('insert into countList(userName,title,[titleLink],[type],'+@ziduan+')
    values('+@userName+','+@title+','''+@titleLink+''','+@type+','+@number+')')
      

  3.   

    declare @userName nvarchar(10)
    set @userName='aa?aa'
    exec('insert into tb values('''+@userName+''')')
      

  4.   

    ---只能在程序里做过滤了,sql 中只能这样写了
    exec('insert into countList(userName,title,[titleLink],[type],'+@ziduan+')
    values('+@userName+','+@title+','+@titleLink+','+@type+','+@number+')')
      

  5.   


    exec('insert into countList(userName,title,[titleLink],[type],'+@ziduan+') values('''+@userName+''','''+@title+''','''+@titleLink+''','''+@type+''','''+@number+''')')