У меня есть таблица с автоинкрементным идентификационным номером/столбцом первичного ключа с именем ID.MS SQL Auto Increment non Identity Column
CREATE TABLE Table1(
[ID] [bigint] IDENTITY(1,1) NOT NULL,
[TextContent] [nvarchar](450) NOT NULL,
[Version] [bigint] NOT NULL)
Когда я ОБНОВЛЯЮТ [TextContent], я хотел бы, чтобы [Версия] увеличивалась на единицу. Цель состоит в том, чтобы иметь версию для каждой строки, которая увеличивается в любое время, когда строка обновляется.
Есть ли разумный способ сделать это в одной таблице? Возможно, что-то связано с вычисленными значениями столбцов и/или триггерами?
Я использую MSSQL 2008 через Entity Framework.
Спасибо за любую информацию!
Триггер может сделать трюк. Посмотрите также на отслеживание изменений/CDC (изменение данных). –
Вам нужно обновить столбец «Версия» только при обновлении столбца «TextContent» или при обновлении любого столбца? В случае последнего взгляните на специальный тип столбца [rowversion] (https://msdn.microsoft.com/en-us/library/ms182776.aspx), который также можно использовать для bigint. –