none
请问,下面为什么出错?SQL RRS feed

  • 问题

  • DECLARE @t VARCHAR(50)
    SET @t='22
    '
    SELECT @t
    SELECT CAST(LTRIM( LTRIM( @t)) AS INT)
    
    

    大其心,可容天下之物; 虚其心,可受天下之善;
    2011年3月2日 6:02

答案

  • DECLARE @t VARCHAR(50)
    --下面的字符带了换行符不是有效的数字
    --SET @t='22
    --'
    SET @t='22'--去掉换行
    SELECT @t
    SELECT CAST(LTRIM( LTRIM( @t)) AS INT)

    知识改变命运,奋斗成就人生!
    • 已标记为答案 lfofiug 2011年3月5日 3:42
    2011年3月2日 6:08
    版主
  • 存储过程参数不会自动为你加上换行符,请检查调用此存储过程的程序。
    知识改变命运,奋斗成就人生!
    • 已标记为答案 lfofiug 2011年3月5日 3:42
    2011年3月2日 7:10
    版主

全部回复

  • DECLARE @t VARCHAR(50)
    --下面的字符带了换行符不是有效的数字
    --SET @t='22
    --'
    SET @t='22'--去掉换行
    SELECT @t
    SELECT CAST(LTRIM( LTRIM( @t)) AS INT)

    知识改变命运,奋斗成就人生!
    • 已标记为答案 lfofiug 2011年3月5日 3:42
    2011年3月2日 6:08
    版主
  •  

    我用的存储过程,有很多参数,其中有一个参数是字符串类型传入,值为“22”;

    可是在存储过程里执行的时候,我要把这个字符串转为int类型;但是在存储过程里,传入的这个值已经是"22

    "了,也就是说它自动生成一个换行,请问这是什么啊?


    大其心,可容天下之物; 虚其心,可受天下之善;
    2011年3月2日 6:20
  • 存储过程参数不会自动为你加上换行符,请检查调用此存储过程的程序。
    知识改变命运,奋斗成就人生!
    • 已标记为答案 lfofiug 2011年3月5日 3:42
    2011年3月2日 7:10
    版主