Ich möchte eine eindeutige ID für jede Insert-Anweisung, die ich mache, geben, damit ich sehen kann, welche Zeilen zusammen eingefügt wurde. Ich bevorzuge, dass die eindeutige "Einfüge-ID" bei 1 beginnt und um eins wie die IDENTITY(1,1)
für Reihen zunimmt.Wie generiert man eine eindeutige ID für jede Insert-Anweisung in SQL Server?
Gibt es einen einfachen Weg wie IDENTITY
, das zu tun? Diese
CREATE TABLE [dbo].[factTrade]
(
[ID] [int] IDENTITY(1,1) NOT NULL,
[insertedID] [int] NOT NULL,
[quantity] [int] NOT NULL,
[price] [decimal](20, 10) NOT NULL
)
INSERT INTO [dbo].[factTrade] ([insertedID], [quantity], [price])
VALUES (1, 6, 2.5), (1, 4, 3.7), (1, 3, 4.1), (1, 7, 8.5),
INSERT INTO [dbo].[factTrade] ([insertedID], [quantity], [price])
VALUES (2, 5, 5.2), (2, 1, 4.6)
ähm, was wäre der Unterschied zwischen Ihrer 'ID' Spalte und' insertedId'? – Lamak
Warum haben Sie nicht nur eine DateCreated-Spalte? Es wäre eine Datetime-Spalte, die NOT NULL mit dem Standardwert von GETDATE() ist. Sonst müßte man sehr viel anstrengen, um so etwas zu erreichen. Sie müssten eine Sequenz verwenden und wahrscheinlich einen Trigger anstelle eines Triggers erstellen, damit Sie jede Einfügung mikroverwalten können. –
In SQL Server ** 2012 ** und neuer würde ich eine "SEQUENCE" verwenden, um eindeutige Sequenznummern für jeden Insert auszugeben. –