Ответ 1
Вам не нужен внутренний выбор:
UPDATE TheTable SET RevisionId = RevisionId + 1 WHERE [email protected]
Noob вопрос здесь, каждый раз, когда я изменяю определенную запись в таблице SQL Server 2008 R2, я хочу увеличить запись RevisionId; для этого я использую следующий синтаксис:
UPDATE TheTable
SET RevisionId=(SELECT RevisionId
FROM TheTable
WHERE [email protected]) + 1
WHERE [email protected];
Btw, я собираюсь поместить это в триггер, чтобы это происходило автоматически, но пока этот код работает, он чувствует себя довольно неуклюжим - любой более чистый способ сделать это?
Вам не нужен внутренний выбор:
UPDATE TheTable SET RevisionId = RevisionId + 1 WHERE [email protected]
Это идиома SQL для приращения поля:
UPDATE TheTable
SET RevisionId = RevisionId + 1
WHERE [email protected];
Если вы просто ищете значение "row version", считаете ли вы добавлением столбца TimeStamp в свою таблицу? SQL Server обновляет его для вас "автоматически" каждый раз. Никакой код с вашей стороны вообще. Они просто не будут последовательно пронумерованы, если это важно для вас.