Номер 0 не сохраняется в базу данных в качестве префикса в SQL Server столбца типа данных CHAR - PullRequest
0 голосов
/ 26 марта 2012

Я пытаюсь вставить значение как '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

1 Ответ

3 голосов
/ 26 марта 2012

Хорошо, не зная типов данных столбца, я бы предложил попробовать это:

Изменение с

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

К

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

Но если столбцы целые, это ничего не изменит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...