Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как узнать гарантированно последний ID?
|
|||
|---|---|---|---|
|
#18+
MS Sql 7.0. Есть таблица Tab1 со структурой: ID int IDENTITY(1,1), Name varchar(20) На ней висит триггер for insert, который при вставке вставляет записи (предположим произвольное количество) в таблицу Tab2 со структурой: ID int IDENTITY(1,1), Name varchar(20) Я вставляю запись в Tab1. Какие образом я могу узнать гарантированно последний вставленный ID в Tab1? Ведь триггер испортит значение @@IDENTITY Очень не хочется прибегать к залочиванию всей таблицы, и поиску максимального ID (ничего другого пока не приходит в голову) (понимаю, что вопрос не нов, буду очень благодарен за совет либо за указание на топик, где рассматривался подобный вопрос) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2001, 18:46 |
|
||
|
Как узнать гарантированно последний ID?
|
|||
|---|---|---|---|
|
#18+
Где читал, не помню. Делается например так: В начале триггера, Declare @LastIdent Int, @s as varchar(255) Set @LastIdent = @@Identity .. Выполнение триггера .. в конце, set @s = 'SELECT Identity(Int, ' + CAST(@LastIdent as varchar(10)) + ', 1 ) as i INTO #_T' EXEC (@s) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2001, 06:28 |
|
||
|
Как узнать гарантированно последний ID?
|
|||
|---|---|---|---|
|
#18+
Как вариант - переделать логику работы... Т.е. вставлять запись в таблицу не инсертом, а процедурой, в которой и реализовать вставку в обе таблицы... Если надо, то в процедуре реализовать возврат искомого значения... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2001, 07:42 |
|
||
|
Как узнать гарантированно последний ID?
|
|||
|---|---|---|---|
|
#18+
А, собственно, сервер-то какой? Если 2000, то вместо @@IDENTITY используйте SCOPE_IDENTITY(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2001, 08:44 |
|
||
|
|

start [/forum/topic.php?fid=46&tid=1824694]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 341ms |

| 0 / 0 |
