数字0没有作为CHAR数据类型列的SQL Server中的前缀保存到数据库中



我正试图将值作为'019393'插入到具有CHAR(10)列的表中。

它只将'19393'插入数据库

我在一个存储过程中实现了这个功能,做了一些操作,比如把这个数字增加15,然后用'0'作为前缀保存回来

我正在使用SQL Server数据库

注意:在保存到数据库之前,我尝试将该值转换为VARCHAR,但即使这样也没有得到解决方案

代码

SELECT 
    @fromBSB = fromBSB, @toBSB = toBSB, @type = Type
FROM
    [dbo].[tbl_REF_SpecialBSBRanges]
WHERE
    CAST(@inputFromBSB AS INT) BETWEEN fromBSB AND toBSB
SET @RETURNVALUE =   @fromBSB
IF(@fromBSB = @inputFromBSB)
BEGIN
    PRINT 'Starting Number is Equal';
    DELETE FROM tbl_REF_SpecialBSBRanges 
    WHERE Type = @type AND fromBSB = @fromBSB AND toBSB = @toBSB
    INSERT INTO [tbl_REF_SpecialBSBRanges] ([Type], [fromBSB], [toBSB])
    VALUES(@type, CAST('0' + @fromBSB + 1 AS CHAR), @toBSB)
    INSERT INTO [tbl_REF_SpecialBSBRanges] ([Type], [fromBSB], [toBSB])
    VALUES(@inputBSBName, @inputFromBSB, @inputToBSB)
END

好吧,在不知道列数据类型的情况下,我建议尝试一下:

的变化

CAST('0'+@fromBSB+1 AS CHAR)

'0'+CAST(@fromBSB+1 AS CHAR(10))

但是,如果列是整数,这不会有什么不同。

最新更新