Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Работа Триггера INSERT
|
|||
|---|---|---|---|
|
#18+
Подскажите, плиз. Есть вот такая ситуация (приложение работает на ASP). Вставляются данные в таблицу с помощью команды INSERT (строго одна запись инсертится) при этом выпоняется триггер, в теле которого выполняется еще один INSERT в другую таблицу - т.е. у меня ведется таким образом журнал операций. Но в самом ASP приложении после выполнения команды INSERT я получаю ID новой записи. Выглядит это примерно так: sql = "SELECT * FROM AllStock WHERE id=0" rs.open sql, trade, 1,3 rs.AddNew rs("PositionID")= 5309 rs("PositionCount")= 100 rs("UserID")= 55 rs.Update NewID = rs("ID") 'ID только что добавленной записи - это мне и нужно Так вот, проблема заключается в том, что после работы триггера мне возвращается неправильный ID. То есть возвращается ID той новой записи, которая инсертится во время выполнения самого триггера, а не той, которая была причиной триггера. Подскажите как этого можно избежать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2001, 10:45 |
|
||
|
Работа Триггера INSERT
|
|||
|---|---|---|---|
|
#18+
А ID Identity-? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2001, 10:51 |
|
||
|
Работа Триггера INSERT
|
|||
|---|---|---|---|
|
#18+
Поле ID - identity. Все работало корректно до появления триггера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2001, 11:01 |
|
||
|
Работа Триггера INSERT
|
|||
|---|---|---|---|
|
#18+
А наверное и 2-ая таблица, в которой вы ведете журнал операций имеет поле с IDENTITY ? Если так, то проверьте, в каком месте триггера у вас определяется ID для 1-ой таблицы. Можете поискать на этом форуме - тема правильного определения последнего ID ужк обсуждалась. И заодно уточните вашу версию SQL-я. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2001, 11:11 |
|
||
|
Работа Триггера INSERT
|
|||
|---|---|---|---|
|
#18+
Да вторая таблица тоже имеет поле Identity версия SQL - 7.0 Вот пример триггера CREATE TRIGGER [ins_AllStock] ON [dbo].[AllStock] FOR INSERT AS declare @posID int declare @posCount float declare @AllStockID int Select @AllStockID = inserted.[id], @posID = inserted.PositionID, @posCount = inserted.PositionCount FROM inserted if @posID = 5309 and @posCount <>"" and ISNUMERIC (@posCount)=1 begin insert into AllStockJournal (PositionID, PositionCount) VALUES (@posID, @posCount) /* Вот ID из этой таблицы и возвращается */ end ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2001, 11:28 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32011839&tid=1825871]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 255ms |
| total: | 408ms |

| 0 / 0 |
