&%@%$@#!$@#!$ER#@!$#@!$#@!$#!@hurry!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!help!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

解决方案 »

  1.   

    exec ("insert into ryquery select * from " + @tbname + " where query_no= " + convert(varchar(8),@query_no))===>>    exec ('insert into ryquery select * from ' + @tbname + ' where query_no= ''' + convert(varchar(8),@query_no))+ ''''
      

  2.   

    不行啊,4N  @query_no int我也刚试了请务必再看看
      

  3.   

    首先确定字段query_no的类型, 如果是int型, 应:
    exec ('insert into ryquery select * from ' + @tbname + ' where query_no= ' + convert(varchar(8),@query_no))首先确定字段query_no的类型, 如果是varchar(8)型, 应:
    exec ('insert into ryquery select * from ' + @tbname + ' where query_no= ''' + convert(varchar(8),@query_no))+ ''''
      

  4.   

    1.使用'而不要使用"
    exec ('insert into ryquery select * from '+ @tbname ...)
      
      

  5.   

    exec ('insert into ryquery select * from ' + @tbname )--+ ' where query_no= ' + convert(varchar(8),@query_no))各位,请再关注,如上,则运行如果去掉)--,那么就有错误
    Server: Msg 156, Level 15, State 1, Procedure sp_getresult, Line 29
    Incorrect syntax near the keyword 'convert'.
    Server: Msg 2812, Level 16, State 62, Line 2
    Could not find stored procedure 'sp_getresult'.
    可是如果select出来也没错误啊help
      

  6.   

    这么写, 看看是哪句错:--------------------
    declare @SQLs char(400)select @SQLs = 
        'insert into ryquery select * from ' 
        + @tbname 
        + ' where query_no= ' 
        + convert(varchar(8),@query_no)
        
    exec (@SQLs)
    --------------------另外, 你的@tbname的值是不是有问题?
      

  7.   

    exec ('insert into ryquery select * from ' + @tbname + ' where query_no= ''' + convert(varchar(8),@query_no)+'''')
      

  8.   

    不行啊nononono(null,null):   @tbname没问题啊改成
    while(@i<(@month_count+1))
      begin
       select @tbname='ry'+convert(varchar(8),dateadd(month,@i, @start_date),112)
       --select @tbname,@i
       if(exists(select * from sysobjects where name=@tbname and xtype='U'))
         select @tbname,@i
         --exec ('insert into ryquery select * from ' + @tbname + ' where query_no= ' + convert(varchar(8),@query_no))
         --exec ('insert into ryquery select * from ' + @tbname + ' where query_no= ''' + convert(varchar(8),@query_no)+'''')
         /*
          begin
           select @sql= "insert into ryquery select * from " + @tbname + " where query_no= " + convert(varchar(8),@query_no)
           select @sql 
         end
         */
       set @i=@i+1        
      end 
    goexec sp_getresult '2000/01/01','2001/05/02',177,0运行结果
                         
    -------- ----------- 
    ry200103 14(1 row(s) affected)                     
    -------- ----------- 
    ry200104 15(1 row(s) affected)表名正确,后面的数字也正确啊                      
      

  9.   

          select @sql= "insert into ryquery select * from " + @tbname + " where query_no= " + convert(varchar(8),@query_no)怎么又用上双引号了? 别用双引号, 用单.另外, 如果是下面的语句, 显示的是什么样的SQLs?
        begin
           declare @SQLs char(400)       select @SQLs = 
              'insert into ryquery select * from ' 
              + @tbname 
              + ' where query_no= ' 
              + convert(varchar(8),@query_no)       select @SQLs       --exec (@SQLs)    end
        
      

  10.   

    呵呵,刚才在按照4N的提示做呢DONE,呵呵,我也是先select出验证了下,所以耽误了点时间,抱歉,抱歉,回头我再改成双引号看看高兴高兴
      

  11.   

         begin
           select @sql = 
              "insert into ryquery select * from "
              + @tbname 
              + " where query_no= " 
              + convert(varchar(8),@query_no)
           --select @sql
           exec (@sql)
         end
    双引号也一样一样的啊谁有兴趣,找出答案后通知我一声谢谢大家
      

  12.   

    exec ("insert into ryquery select * from " + @tbname + " where query_no= '" + convert(varchar(8),@query_no)+"'")
    看看行不行,不行的话限定以一个变量 v_strNo char(10)
    select v_strNo = convert(varchar(8),@query_no)
    再做可能就简单一些了