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


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