|
|
|
Как получить ID вставленной записи?
|
|||
|---|---|---|---|
|
#18+
Есть таблица с identity ID, т.е. генерится автоматом ;) Как узнать ID только что вставленной записи? что бы продолжить с ним (ID) работу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2002, 18:34:19 |
|
||
|
Как получить ID вставленной записи?
|
|||
|---|---|---|---|
|
#18+
@@IDENTITY ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2002, 18:45:01 |
|
||
|
Как получить ID вставленной записи?
|
|||
|---|---|---|---|
|
#18+
Для MS SQL2000 более корректно работает SCOPE_IDENTITY ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2002, 18:52:54 |
|
||
|
Как получить ID вставленной записи?
|
|||
|---|---|---|---|
|
#18+
@@identity - это, конечно, правильно, НО: надо иметь в виду, что это значение глобальное для всей базы по всем пользователям и таблицам. Т. е. если вы хотите получить именно своё значение, то надо использовать транзакцию: Код: plaintext 1. 2. 3. И еще. Инсёрт в триггере на инсёрт приводит к сбою @@identity, т. е. будет возвращено значение для строки, вставленной триггером, а не вами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2002, 09:51:16 |
|
||
|
Как получить ID вставленной записи?
|
|||
|---|---|---|---|
|
#18+
2 pima: насчет "глобального значения по всем пользователям и таблицам" - это Вы загнули! @@IDENTITY работает только внутри сессии, так что транзакция никакая нафиг не нужна. А с триггерами действительно надо быть осторожным, но только тогда, когда они сами вставляют записи в таблицу со столбцом identity. Но как написал Jimmi используйте функцию SCOPE_IDENTITY() и проблем с триггерами не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2002, 10:17:19 |
|
||
|
Как получить ID вставленной записи?
|
|||
|---|---|---|---|
|
#18+
Спасибо всем. Переменная IDENTITY действительно действует только внутри одно сессии. Как раз то что нужно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2002, 11:08:52 |
|
||
|
Как получить ID вставленной записи?
|
|||
|---|---|---|---|
|
#18+
Пользуйте SCOPE_IDENTITY(). Для вас разницы никакой (на 6 символов больше), а надёжно работает в 100% ситуаций. С @@IDENTITY внутри одно сессии могут быть всякие горбухи особенно при доступе к данным через единый сервер (например IIS). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2002, 13:01:07 |
|
||
|
Как получить ID вставленной записи?
|
|||
|---|---|---|---|
|
#18+
а чем полох IDENT_CURRENT('table_name') ?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2002, 16:09:23 |
|
||
|
Как получить ID вставленной записи?
|
|||
|---|---|---|---|
|
#18+
>а чем полох IDENT_CURRENT('table_name') ?? BOL: IDENT_CURRENT Returns the last identity value generated for a specified table in any session and any scope. Т.е. добавляем запись. В следующую миллисекунду из другой сессии вставляется 100 записей. Смотрим IDENT_CURRENT('table_name') и получаем ID 101 записи, а не нашей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2002, 16:40:29 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32053389&tid=1820043]: |
0ms |
get settings: |
13ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
34ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 332ms |

| 0 / 0 |
