打印出 @varchar 
将它放在查询分析器中执行.看看错在那里.

解决方案 »

  1.   

    不知道你说的是什么意思?
    执行时@varchar不全,还有很多没显示
    是结果不对,还是@varchar的值少了.
    如果是前者,就打印出其值,在查询分析器中找错.如果是后者,可能是你的字符串太长.超过了最大允许的长度8000
    那要改用几个变量相加才行,即:exec(@varchar1+@varchar2+...)
      

  2.   

    VARCHAR类型最多就能存8000个字符,可能是已经超出了范围。你看一下吧。
      

  3.   

    不知道你说的:
    执行时@varchar不全,还有很多没显示是否指:exec(@varchar) 出错如果是指@varchar丢失了一部分内容,那就是因为你的生成的字符串长度超过了最大允许的长度8000,要改为用几个字符串加起来的方法解决:
    即用类似下面的方法:
    exec(@varchar1+@varchar2+...)
      

  4.   

    在最后不用
    select @varchar

    print @varchar
    在把print出的代码放到另一个窗口中验证,检查错误
      

  5.   

    大力print出来是这样的
    运行时提示
    将 varchar 值 '*******' 转换为数据类型为 int 的列时发生语法错误。select Prod_id,prod_apply_person,state,state2,Prod_type,Prod_name_eng,prod_name,prod_sort,prod_make_co,Prod_sureness_stock,prod_apply_date  
    from product  where 1=1 and prod_apply_person=1 union all 
    select prod_id,prod_apply_person,state,state2,prod_type ,Prod_name_eng ,Prod_name ,prod_sort  ,prod_make_co='*******' ,Prod_sureness_stock='*******',prod_apply_date  
    from product  where 1=1 and prod_apply_person<>1
      

  6.   

    大力
    select @varchar

    print @varchar
    有什么区别????
      

  7.   

    定义的表结构中有int字段,没有将varchar值用显式地转换成intprint @varchar的目的是打印出来让你看一下全部的SQL 语句,有没有错误。
      

  8.   

    prod_make_co='*******' ,Prod_sureness_stock='*******'你的表中prod_make_co与Prod_sureness_stock
    是int型吧?
    怎么能够和'*******'做比较?