Динамический автоинкрементный столбец SQL в хранимой процедуре - PullRequest
0 голосов
/ 17 декабря 2010

Я пытаюсь написать хранимую процедуру [SQL 2008] с динамическим, автоматически увеличивающимся столбцом, и синтаксис для этого ускользнул от меня.

Если у меня есть таблица с именем widget с одним столбцом с именем widget_nm, моя цель -

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

и получите следующий результат

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

Я вспомнил, как это сделать один раз, но моя память подвела меня ... любой совет?

С праздником!

Ответы [ 3 ]

5 голосов
/ 17 декабря 2010

Вы не упомянули, какой диалект sql вы используете,

Если вы используете mssql (Tsql) 2005+, используйте функцию Row_Number ()

4 голосов
/ 17 декабря 2010

Вы можете использовать ROW_NUMBER в SQL Server 2005 и более поздних версиях:

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

, который будет нумерацией в порядке widget_nm

0 голосов
/ 17 декабря 2010

Если вы используете SQL Server 2005, это тривиально .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...