2010-12-17 3 views
0

Ich versuche, eine gespeicherte Prozedur [SQL 2008] mit einer dynamischen, automatisch inkrementieren Spalte zu schreiben und die Syntax dafür ist mir entgangen.SQL dynamische automatisch inkrementierende Spalte in gespeicherten Prozedur

Wenn ich eine Tabelle Widget mit einer einzigen Spalte widget_nm mein Ziel genannt genannt haben, ist zu

SELECT [???] AS widget_id, widget_nm FROM widget 

und erhalten das folgende Ergebnis

widget_id | widget_nm 
1   | bob 
2   | sally 
3   | fred 

Ich erinnerte mich, wie dies einmal zu tun, aber mein Erinnerung hat mich im Stich gelassen ... irgendeinen Rat?

Frohe Feiertage!

Antwort

5

Du hast nicht erwähnt, welche SQL-Dialekt Sie verwenden,

Wenn Sie auf MSSQL (Tsql) sind 2005+ die Verwendung Row_Number() Funktion

+0

Er markiert die Frage als SQL Server 2008 ... auch +1 – JNK

+1

Ich denke, dass Tag hinzugefügt wurde, nachdem ich geantwortet habe, dass oder ich werde blind: S – Robb

4

Sie ROW_NUMBER in SQL Server verwenden können, 2005 und später:

SELECT ROW_NUMBER() OVER (ORDER BY widget_nm) AS widget_id, widget_nm 
FROM widget 
ORDER BY widget_nm 

, die wird die Nummer in der Reihenfolge der widget_nm

Verwandte Themen