Noob在这里提问,每当我更改SQL Server 2008 R2表中的某个记录时,我想增加一个RevisionId记录;为此,我使用以下语法:
UPDATE TheTable
SET RevisionId=(SELECT RevisionId
FROM TheTable
WHERE Id=@id) + 1
WHERE Id=@id;
顺便说一下,我要把它放到一个触发器中,这样就会自动发生,但是当这段代码工作时,感觉很笨重 - 任何更干净的方法都可以做到这一点?
答案 0 :(得分:39)
您不需要内部选择:
UPDATE TheTable SET RevisionId = RevisionId + 1 WHERE Id=@id
答案 1 :(得分:12)
这是用于递增字段的SQL惯用语:
UPDATE TheTable
SET RevisionId = RevisionId + 1
WHERE Id=@id;
答案 2 :(得分:1)
如果您只是在寻找“行版”值,您是否考虑过在表中添加TimeStamp列? SQL Server每次都会“自动”为您更新它。根本没有代码。如果这对你很重要,它们就不会按顺序编号。