set @sksj='07:'+Convert(char(2),@z)+',11:'+@zhuan+',12:'+Convert(char(2),@zh2)+',17:'+Convert(char(2),@w1)+',17:'+Convert(char(2),@w2)+',20:'+Convert(char(2),@y1)
     set @sql='insert '+@tbname +' select name,'+@no+',bmno,bmmc,null,null from rs where no='+@no
  execute (@sql)
   set @sql='update '+@tbname+' set sksj='+@sksj+' where skrq='+@skrq
  execute (@sql)
我想直接插入数据,但是@sksj有许多引号,所以我用更新语句,但是还是有错误,请问如何实现啊?

解决方案 »

  1.   


    set @sql='update '+@tbname+' set sksj='''+@sksj+''' where skrq='+@skrq 
      execute (@sql) 
      

  2.   

     execute (replace(@sql,''','"'))
    是这样改吗?有语法错误啊!
      

  3.   

    执行的时候提示
    (1 row(s) affected)update kqbrush200904 set sksj='07:17,11:00,12:16,17:33                                                                                                                                                                                                                                        ' where skrq=2009-04-26
    Server: Msg 245, Level 16, State 1, Line 1
    Syntax error converting the varchar value '2009-03-26' to a column of data type int.
      

  4.   


    update kqbrush200904 set sksj='07:17,11:00,12:16,17:33' where skrq='2009-04-26' --这里少了引号 
      

  5.   

    set @sql='update '+@tbname+' set sksj='''+@sksj+''' where skrq='''+@skrq +''''
      execute (@sql) 改为这样.
      

  6.   

    还是不对啊!
    (1 row(s) affected)update kqbrush200904 set sksj='07:25,11:06,12:21,17:31                                                                                                                                                                                                                                        ' where skrq='2009-04-26'(0 row(s) affected)