Neue Werte in Identitätsspalte einfügen
Per Default wird der Wert einer Identitätsspalte nach Absetzen des INSERT-Befehls automatisch ermittelt. Wird beispielsweise folgende Tabellenstruktur
1: CREATE TABLE [TblExpert]
2: (
3: [ExpertID] INT IDENTITY(1, 1) NOT NULL,
4: [Name] NVARCHAR(MAX) NOT NULL,
5: [Nachname] NVARCHAR(MAX) NOT NULL
6: );
verwendet und anschließend ein INSERT-Statement in der Form
1: INSERT INTO TblExpert(Name, Nachname) VALUE ('Matthias', 'Pohl');
auf die neu angelegte Tabelle abgesetzt, so kann mit einer geeigneten Abfrage, z.B.
1: SELECT [ExpertID], [Name], [Nachname]
2: FROM [TblExpert]
3: WHERE [ExpertID] =
4: (
5: SELECT MAX([ExpertID])
6: FROM [TblExpert]
7: );
der neue Datensatz mit der ID-Spalte (hier im konkreten Fall: “[ExpertId]”) ermittelt werden.
Systemfunktionen für Identitätsspalte
1: CREATE TRIGGER TblExpertAfterInsert
2: ON [TblExpert]
3: AFTER INSERT
4: AS
5: BEGIN
6: IF TRIGGER_NESTLEVEL() > 1 RETURN
7:
8: INSERT [TblExpert]
9: (Name, Nachname)
10: SELECT Name+'2', Nachname+'2' FROM Inserted;
11: END
1: INSERT INTO TblExpert(Name, Nachname)
2: VALUES ('Matthias', 'Pohl');
3:
4: SELECT
5: @@IDENTITY AS '@@IDENTITY',
6: SCOPE_IDENTITY() 'SCOPE_IDENTITY()',
7: IDENT_CURRENT('[TblExpert]') AS 'IDENT_CURRENT(''[TblExpert]'')';
Verwendung der OUTPUT-Klausel
1: INSERT INTO TblExpert([Name], [Nachname])
2: OUTPUT INSERTED.$IDENTITY
3: VALUES ('Matthias', 'Pohl');
Fazit
Quellen
- OUTPUT-Klausel (Transact-SQL) (letzter Zugriff: 2014-09-24)
- Verwenden der Tabellen inserted und deleted (letzter Zugriff: 2014-09-24)
Sie sehen gerade einen Platzhalterinhalt von Facebook. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr InformationenSie sehen gerade einen Platzhalterinhalt von Instagram. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr InformationenSie sehen gerade einen Platzhalterinhalt von X. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr Informationen