Rubrik: Datenbanken · SQL-Server | VB-Versionen: VB6 | 15.03.10 |
Auto-Wert beim Hinzufügen neuer Datensätze selbst festlegen (SQL-Server) Mit dem Setzen der System-Option IDENTITY_INSERT lässt sich festlegen, ob Werte in einer Auto-Wert Spalte explizit eingefügt werden dürfen. | ||
Autor: Dieter Otter | Bewertung: | Views: 12.061 |
www.tools4vb.de | System: Win2k, WinXP, Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Auto-Werte sind ewtas sehr "schönes" und bequemes und werden meist dazu verwendet, Datensätze eindeutig zu kennzeichnen. Um die Vergabe dieser automatischen Nummer kümmert sich das Datenbank-System. Eine explizite Zuweisung eines Wertes zu einer sogenannten IDENTITY-Spalte lässt der SQL-Server bspw. auch gar nicht zu! Jetzt kann es aber duchaus vorkommen und sinnvoll sein, den Auto-Wert beim Hinzufügen neuer Datensätze manuell zu vergeben, bspw. dann, wenn man eine externe Datenbank-Tabelle importieren muss und die darin vergebenen Auto-Nummer-Werte wieder verwenden muss.
Für diesen Fall stellt uns der SQL-Server die System-Option IDENTITY_INSERT zur Verfügung. Mit dieser Option legt man fest, ob in eine Tabellenspalte mit der Eigenschaft IDENTITY Werte explizit eingefügt werden dürfen.
Anwendungsbeispiel:
' Auto-Werte selbst einfügen oConn.Execute "SET IDENTITY_INSERT [Tabellenname] ON" ' Datensätze hinzufügen ... ' manuelle Vergabe der Auto-Werte wieder ausschalten oConn.Execute "SET IDENTITY_INSERT [Tabellenname] OFF"