有一个存储过程:C130ExpIn_style,此存储过程需要两个参数,一个@cur,另一个是@styleid,这两个参数分别是从其他表取出的,select @cur=customerid from b_customer,select @styleid from b_style,上面两个语句得出的参数,都是只有一个值的,而且,这两个参数的数,都有可能是以零开头的,这样子,将这两个参数传入存储过程后,前面的零都不见了,这样子,导致执行后,数据不准备.
请高手帮忙分析一下,怎么传才能使用前面的零不被去掉.
在线等待.

解决方案 »

  1.   

    定义这2个变量为 varchar(100)
      

  2.   

    如果你需要零的话,就在存储过程里定义参数时定义为varchar类型
     
      

  3.   


    select @cur=cast(customerid as varchar(20))from b_customer
    select @styleid=cast(字段 as varchar(20)) from b_style
      

  4.   

    参数是已经定义为varchar的了;
    执行这句:select @cur=customerid from b_customer后,得到01,但是,传入存储过程后,把语句打印出来,变为1了.
      

  5.   

    select @cur=LTRIM(customerid) from b_customer,select @styleid= LTRIM(styleid) from b_style
      

  6.   

    DECLARE @VAR VARCHAR(20)
    SELECT @VAR =LTRIM('01')
    SELECT @VAR
                         
    -------------------- 
    01(所影响的行数为 1 行)
      

  7.   

    传入存储过程再打印是什么意思???你传入的时候也加LTRIM()试试