Ich habe eine Artikelthistorietabelle erstellt, für die ich automatisch VersionId
partitioniert durch .Können Sie eine Untersequenz für eine Tabelle angeben?
ID ItemId VersionId ItemContent Created 1 1 1 fooo 2015-02-24 12:54:00.11 2 2 1 barr 2015-02-24 12:54:15.35 3 1 2 foo 2015-02-24 12:55:00.61 4 1 3 baz 2015-02-24 12:55:45.23 5 2 2 bar 2015-02-24 12:56:00.03
Derzeit ist VersionId
in einem Trigger festgelegt. Was ich möchte, ist so etwas finden (ich weiß, das ist nicht wirklich funktioniert):
create table ItemHistory
(
Id int identity(1,1) not null primary key
,ItemId int not null references Item(Id)
,VersionId int not null default row_number() over (partition by ItemId order by Id)
,ItemContent varchar(max)
,Created datetime not null default getdate()
)
Während ich eine funktionierende Lösung haben, würde ich gerne wissen, ob ich einige gebaut bin fehlt -in Funktionalität für die Handhabung dieses Falls.
Also sagen Sie, wenn Sie eine Zeile in die Tabelle schreiben, geben Sie die ItemId an und möchten, dass die VersionId basierend auf den bereits in der Tabelle vorhandenen Zeilen automatisch gesetzt wird? – Elliveny
@Elliveny Ja, das stimmt. –
Ich denke, ein Trigger ist die Antwort hier. Mir ist keine bessere Lösung bekannt. Upvote zu der Frage, ich bin gespannt, ob jemand mit etwas kommt! – Elliveny