Hallo,
warum dieses denn nicht? Damit derjenige sieht, dass es für IDD 3 keinen Kunden gibt. Und genau dies tut man nicht. Für einen neuen Kunden sollten immer nur neue Identifikationen verwenden. Und es spielt weder für den nicht-technischen Geschäftsablauf noch aus technischer Sicht eine Rolle ob die Kundennummer 3 oder 45869 ist.
Stell dir vor, deine Bank würde nach deiner Kündigung deine Kontonummer an einen neuen Kunden vergeben und irgendjemand aus dem hintersten Kabuff vergisst, dein Konto zu löschen. Der neue Kunde hat dann evt. Zugriff zu deinem Konto.
Biete einen Button an "Neuen Kunden erfassen", der zeigt eine leere Eingabemaske und das Speichern verpasst ihm eine neue Kundennummer.
In Spalten mit AutoIncrement kannst du auch nicht einfach so einen Wert einfügen, das behält sich das System vor.
Wenn du es aber unbedingt nicht anders willst. Incrementiere deinen Vergleichswert ausserhalb (=vor der Abfrage) um 1 und Frage dann die Datenbank ob sie für diese Wert (2+1 = 3) einen Datensatz hat.
IF NOT EXISTS(SELECT 1 FROM tabelle WHERE IDD = @deineVariable)
SET IDENTITY_INSERT tabelle ON
INSERT tabelle (Id, feld, feld)
VALUES (3, NULL, NULL)
SET IDENTITY_INSERT tabelle OFF
END
SELECT feld, feld, feld FROM tabelle WHERE IDD = @deineVariable
Es ist wieder optimal noch überhaupt sinnvoll, ein künstlich generiertes Problem so zu lösen.
Wenn du nicht willst, dass Lücken entstehen, dann verhindere physikalische Löschungen und setze nur ein Flag (active = 0 | 1) für den Datensatz. Dieses Flag kannst du dann zusätzlich auswerten und die Anzeige entsprechend anders gestalten.
Cheers,
Frank