MS SQL Server Извлечь целое число из столбца, увеличить на 1 и загрузить число обратно в столбец - PullRequest
0 голосов
/ 15 мая 2018

У меня есть таблица со столбцом (целое число). В хранимой процедуре MS Sql Server 2005 я хочу взять значение в этом столбце, увеличить его на 1 и обновить столбец, чтобы он стал увеличенным значением. Этот столбец является счетчиком, поэтому у каждой строки в таблице будет свой счетчик, т. Е. Я не могу просто поставить триггер на столбец, чтобы автоматически увеличивать его или что-то в этом роде. У меня есть некоторый код, как указано ниже, но все, что он делает, это обновляет столбец до 1.

SELECT ControlNo = @c
    FROM MedicaidInterchange
    WHERE 1=1
    AND Interkey = @InterKey;

    SET @c = @c +1;

    UPDATE MedicaidInterchange
    SET InterDate = @d
    , InterTime = @t
    , ControlNo = @c
    WHERE 1=1
    AND Interkey = @InterKey;

Кто-нибудь, пожалуйста, помогите мне выяснить, где мой код не работает? Заранее спасибо за любую помощь.

1 Ответ

0 голосов
/ 15 мая 2018

Причина, по которой ваш код не работает, заключается в следующей строке:

SELECT ControlNo = @c

Это то же самое, что и

SELECT @c as ControlNo

Согласно документации :

| column_alias = expression  

Вы, вероятно, хотели написать:

SELECT @c = ControlNo

Но не уверен, нужна ли вам здесь переменная. Вы можете ссылаться на старые значения в правой части SET:

UPDATE  MedicaidInterchange
SET     ControlNo = ControlNo + 1
WHERE   Interkey = @InterKey
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...