Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Триггер и @@IDENTITY / 6 сообщений из 6, страница 1 из 1
17.08.2002, 21:57:16
    #32044100
Триггер и @@IDENTITY
Есть таблица А1. У нее определен триггер который вставляет строки в таблицу А2.
В А1 есть поле с автоинкрементом.
При потытке получить ID новой записи в А1 получаю ID новой записи в А2.
Как с этим бороться?
Заранее благодарен
...
Рейтинг: 0 / 0
17.08.2002, 22:54:14
    #32044101
Delta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер и @@IDENTITY
Сохранить значение @@IDENTITY до вставки в таблицу А2.
...
Рейтинг: 0 / 0
17.08.2002, 23:04:36
    #32044103
ТГ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер и @@IDENTITY
Есть три типа получения идентити - для базы, коннекта, и текущей операции - у Вас по всей видимости - для коннекта.

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

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

-- Слон
...
Рейтинг: 0 / 0
19.08.2002, 09:16:06
    #32044160
akuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер и @@IDENTITY
Используй в триггере таблицу inserted.
Она содержит значения, которые появятся в таблице после отработки триггера.
Почитай BOL по теме "Using the inserted and deleted Tables"
...
Рейтинг: 0 / 0
19.08.2002, 09:45:45
    #32044164
Владимир Смирнов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер и @@IDENTITY
Я обычно пишу в триггере:
В начале.
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
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Триггер и @@IDENTITY / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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