Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как узнать гарантированно последний ID? / 5 сообщений из 5, страница 1 из 1
06.12.2001, 18:46
    #32018597
Antei
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать гарантированно последний ID?
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 (ничего другого пока не приходит в голову)

(понимаю, что вопрос не нов, буду очень благодарен за совет либо за указание
на топик, где рассматривался подобный вопрос)
...
Рейтинг: 0 / 0
07.12.2001, 06:28
    #32018607
Владимир Смирнов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать гарантированно последний ID?
Где читал, не помню. Делается например так:
В начале триггера,
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)
...
Рейтинг: 0 / 0
07.12.2001, 07:42
    #32018614
Kapusto
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать гарантированно последний ID?
Как вариант - переделать логику работы...
Т.е. вставлять запись в таблицу не инсертом, а процедурой, в которой и реализовать вставку в обе таблицы... Если надо, то в процедуре реализовать возврат искомого значения...
...
Рейтинг: 0 / 0
07.12.2001, 08:44
    #32018619
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать гарантированно последний ID?
А, собственно, сервер-то какой? Если 2000, то вместо @@IDENTITY используйте SCOPE_IDENTITY().
...
Рейтинг: 0 / 0
07.12.2001, 08:45
    #32018620
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать гарантированно последний ID?
Ой, не заметил, что MS Sql 7.0...
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как узнать гарантированно последний ID? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]