Absolut eindeutige ID ohne Identity

02/09/2008 - 13:40 von Thomas Bandt | Report spam
Hi,

normalerweise hole ich mir über SCOPE_IDENTITY() beim
INSERT in einer Stored Procedure die eindeutige ID für
den PK, der als Identity fungiert.

Jetzt muss ich das allerdings auf ein "normales Feld"
vom Typ int machen, bei dem ich manuell hochzàhle.

Gehe ich richtig in der Annahme, dass ich mit

BEGIN TRANSACTION
DECLARE @invoiceID int
SET @invoiceID = (SELECT MAX(OrderID) FROM XYZ WITH (HOLDLOCK)) + 1
COMMIT TRANSACTION

den absolut eindeutigen Wert bekomme, oder tàusche
ich mich da? Danke für alle Tipps :-).

Gruß, Thomas [MVP ASP/ASP.NET]
http://www.69grad.de - Beratung, Entwicklung
http://www.dotnetjob.de - .NET-Stellenmarkt
http://blog.thomasbandt.de - Thomas goes .NET
 

Lesen sie die antworten

#1 Stefan Hoffmann
02/09/2008 - 13:59 | Warnen spam
hallo Thomas,

Thomas Bandt schrieb:
den absolut eindeutigen Wert bekomme, oder tàusche
ich mich da? Danke für alle Tipps :-).


NULL-Werte:

SELECT MAX(Q.id)+1
FROM (SELECT 1 AS id) Q
WHERE Q.id=0

Ansonsten: Elmar oder Frank haben mal dazu was schönes geschrieben,
allerdings habe ich keinen Link dazu.

mfG

Ähnliche fragen