Не легко, нет. Но вы можете определить, что является самым последним, по метке даты или столбцу идентификаторов. Затем, когда вы извлекаете данные, просто получите строку с самым последним значением даты / идентификатора.
Вы также можете написать представление, которое отображает поведение, которое я только что упомянул.
Примерно так:
Поддельные данные
if object_id('dbo.Data') is not null drop table dbo.Data
create table dbo.Data
(
RID int identity(1,1) primary key clustered,
ExampleKey varchar(10),
OtherProperty varchar(100)
)
-- initial insert
insert into dbo.Data (ExampleKey, OtherProperty)
values ('test', 'Random data'), ('test2', 'more random')
-- Second insert
insert into dbo.Data (ExampleKey, OtherProperty)
values ('test', 'Random data'), ('test2', 'more random')
Просмотр подхода
if object_id('dbo.vData') is not null drop view dbo.vData
go
create view dbo.vData
as
select
Version = row_number() over (partition by ExampleKey order by RID desc),
ExampleKey,
OtherProperty
from dbo.Data
go
select top 1000 *
from dbo.vData
Альтернатива
Если вам НУЖНО сохранить его в таблице при вставке, вам, вероятно, понадобится триггер (что я бы не рекомендовал).