powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Триггер и @@IDENTITY
6 сообщений из 6, страница 1 из 1
Триггер и @@IDENTITY
    #32044100
Есть таблица А1. У нее определен триггер который вставляет строки в таблицу А2.
В А1 есть поле с автоинкрементом.
При потытке получить ID новой записи в А1 получаю ID новой записи в А2.
Как с этим бороться?
Заранее благодарен
...
Рейтинг: 0 / 0
Триггер и @@IDENTITY
    #32044101
Delta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сохранить значение @@IDENTITY до вставки в таблицу А2.
...
Рейтинг: 0 / 0
Триггер и @@IDENTITY
    #32044103
ТГ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть три типа получения идентити - для базы, коннекта, и текущей операции - у Вас по всей видимости - для коннекта.

Есть функция (ох уже не помню точно как называется , но в ней указано имя таблицы , для которой отработано идентити), по ней я получаю номер добавленной записи.

И дальше - добавляйте в А2 все , что угоднго, но если у Вас таблицы связаы форен-кеем - такой номер, думаю, не пройдет.
Удачи.
...
Рейтинг: 0 / 0
Триггер и @@IDENTITY
    #32044106
Фотография Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если это SQL Server 2000 тогда вместо @@IDENTITY нужно использовать функцию SCOPE_IDENTITY()

-- Слон
...
Рейтинг: 0 / 0
Триггер и @@IDENTITY
    #32044160
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используй в триггере таблицу inserted.
Она содержит значения, которые появятся в таблице после отработки триггера.
Почитай BOL по теме "Using the inserted and deleted Tables"
...
Рейтинг: 0 / 0
Триггер и @@IDENTITY
    #32044164
Владимир Смирнов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я обычно пишу в триггере:
В начале.
Declare @LastIdent Int, @s as varchar(255)
Set @LastIdent = @@Identity
SET NOCOUNT ON

---Тело триггера ---

В конце.
set @s = 'SELECT Identity(Int, ' + CAST(@LastIdent as varchar(10)) + ', 1 ) as i INTO #_T'
EXEC (@s)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Триггер и @@IDENTITY
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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