2009-05-06 18 views
4

Meine Datenbank hat eine Elterntabelle mit einer automatisch inkrementierenden Primärschlüsselidentität "ID" und einer normalen "TIMESTAMP-Spalte". Ich habe Kindtabellen mit einem Fremdschlüssel, die sich auf die Eltern-ID-Spalte beziehen.SQL Server: Auto-inkrementierte ID in einer gespeicherten Prozedur abrufen?

Ich möchte eine gespeicherte Prozedur schreiben, die eine neue Spalte sowohl in der übergeordneten als auch in der untergeordneten Datenbank einfügt. Wie würde ich die untergeordnete ID-Spalte auf die neue automatisch inkrementierte übergeordnete ID-Spalte einstellen? Benötigt dies ein separates:

SELECT TOP 1 * FROM PARENT_TABLE 

Oder gibt es einen anderen Weg?

+0

Wenn Sie die Verwendung von SCOPE_IDENTITY beenden, lesen Sie die Anmerkungen in der Dokumentation (http://msdn.microsoft.com/en-us/library/ms190315(SQL.90).aspx); vor allem, wenn Sie einen Trigger auf dem Tisch haben, in den Sie einfügen. –

Antwort

8

Sie können es von SCOPE_IDENITY() abrufen. Zum Beispiel:

declare @myid int 
INSERT INTO table (field) VALUES ('value') 
SELECT @myid = SCOPE_IDENTITY() 
0

select scope_identity();

Verwandte Themen