|
|
|
ИД только что вставленной записи
|
|||
|---|---|---|---|
|
#18+
В таблице автоинкременентное поле. После вставки записи нужно узнать его значение. Всегда есть выход - select max()... Но возможно максимальное значение этих полей хранится в одной из системных таблиц (даже если это и так, не факт, что к моменту его чтения другой юзер уже не добавил очередную запись). Как наиболее оптимальным способом узнать значение ИД вставленной записи? (поле не типа uniqueidentifier, а просто identity ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2002, 16:50:35 |
|
||
|
ИД только что вставленной записи
|
|||
|---|---|---|---|
|
#18+
Для SQL 2000 SELECT @id = SCOPE_IDENTITY() Для SQL 7.0 SELECT @id = @@IDENTITY Только вызывать надо сразу (следующим оператором) после вставки и желательно внутри транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2002, 16:54:35 |
|
||
|
ИД только что вставленной записи
|
|||
|---|---|---|---|
|
#18+
А можно уточнить, почему? В смысле насчет 2000-го... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2002, 17:37:36 |
|
||
|
ИД только что вставленной записи
|
|||
|---|---|---|---|
|
#18+
А бог его знает, почитайте BOL. Вроде как надёжнее. Хотя и @@IDENTITY тоже работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2002, 18:29:31 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32058930&tid=1819556]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
46ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 298ms |

| 0 / 0 |
