Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос по работе insert или триггера / 13 сообщений из 13, страница 1 из 1
25.04.2001, 18:29
    #32004825
Вопрос по работе insert или триггера
SQL 2000
Как происходит обработка вставляемых записей ??
Предположим after trigger
Индексы пока не интересуют
Так
1. Insert строки 1
2. Trigger обработка строки 1
3. Insert строки 2
4. Trigger обработка строки 2
или возможна след ситуация
1. Insert строки 1
2. Insert строки 2
3. Trigger обработка строки 1
4. Trigger обработка строки 2
????

Вообще-то задача в след необходимо
- DB1 publisher
- DB2 subscriber возможно больше чем один
- Репликация сведением (merge)
- Реплицируемая таблица
tbTable (
Field1 int
Field2 char(20)
)

Хотелось-бы через триггер в Field1 поле вставлять следующее значение ( Field1+1 ) при вставке из subscriber-a. Но так чтобы при этом изменялость значение Field1 и на subscriber-е.

Надеюсь что подскажете, как данный момент можно реализовать.

Спасибо.
...
Рейтинг: 0 / 0
25.04.2001, 18:41
    #32004828
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе insert или триггера
Как бы не шла вставка, триггер сработает всегда 1 раз на инструкцию insert. Не зависимо от того сколько записей вставляется инструкцией insert.

Например:

INSERT INTO Table1(...)
VALUES(...) - т.е. 1 запись - одно срабатывание тригерра insert

INSERT INTO Table1
SELECT * FROM Table2 (в которой 1 000 000 записей) - все равно одно срабатывание тригерра insert
...
Рейтинг: 0 / 0
25.04.2001, 18:49
    #32004830
Вопрос по работе insert или триггера
Т.е. Вы хотите сказать, что если я внутри триггера делаю SELECT Max(ID) FROM tbTable, то значение будет одно и тоже для всех вставляемых записей ??
Я почему то получил обратный результат.
...
Рейтинг: 0 / 0
25.04.2001, 19:04
    #32004831
Garya
Garya Привилегированный пользователь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе insert или триггера
Что означает фраза "для всех вставляемых записей"? Для всех, вставляемых за одну операцию Insert? Или для всех, вставляемых разными операциями Insert?
Я немного дополню ответ pkarklin. Триггер срабатывает один раз на одну операцию insert. Независимо от того, сколько записей вставляет одна команда Insert - 1000000 или вообще ни одной. Он срабатывает на событие произнесения на языке T-SQL слова "insert" . Если ты несколько раз будешь запускать операции вставки несколькими командами Insert, то и триггер у тебя запустится несколько раз.
...
Рейтинг: 0 / 0
25.04.2001, 19:31
    #32004835
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе insert или триггера
Кстати, посмотрите
http://www.sql.ru/cgi-bin/UltraBoard/UltraBoard.pl?Action=ShowPost&Board=mssql&Post=979&Idle=365&Sort=0&Order=Descend&Page=0&Session=
...
Рейтинг: 0 / 0
25.04.2001, 19:33
    #32004836
Alexander Chepack
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе insert или триггера
Что - у кого-то это работает?
Я имею ввиду - надежно и стабильно )
...
Рейтинг: 0 / 0
25.04.2001, 19:53
    #32004839
Павел
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе insert или триггера
Вам в процентном соотношении? А в прочем в ввиде дроби, если, судя по вопросу, у Вас до сих пор не работатет:

[общее число клиентов MSSQL во всей вселенной - 1]:1

Что такое -1 надеюсь понятно?
...
Рейтинг: 0 / 0
25.04.2001, 19:59
    #32004840
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе insert или триггера
Работает всегда и везде.
...
Рейтинг: 0 / 0
25.04.2001, 20:04
    #32004841
Вопрос по работе insert или триггера
Павел прикол суперовский

Сорру я видимо не корректно задал вопрос, попробую перефразововать.
Меня интересует последовательно всавляются записи в таблицу или возможна ситуация паралельной вставки записей в таблицу при ситуации последовательной вставки, т.е. insert, insert и т.д.

Насчет merge, работает пока
Спасибо
...
Рейтинг: 0 / 0
25.04.2001, 21:05
    #32004844
Павел
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе insert или триггера
Кидай сюда кусок кода на вставку, на чем бы он небыл сотворен. Раберемся.
...
Рейтинг: 0 / 0
26.04.2001, 12:17
    #32004871
Вопрос по работе insert или триггера
Павел данный вопрос меня интересует не сколько с практической точки зрения, сколько с понимания как работает SQL.
Кусок вставить не могу, потому что вставка производится путем запуска репликации (merge).

Спасибо
...
Рейтинг: 0 / 0
26.04.2001, 13:54
    #32004880
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе insert или триггера
Так, к сведению: паралельная вставка в принципе быть не может, т.к. каждый оператор insert это отдельная неявная транзакция
...
Рейтинг: 0 / 0
26.04.2001, 14:32
    #32004888
Павел
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по работе insert или триггера
Ну да, в контексте работы триггера SergSuper безусловно прав. Я же задумался о том, как в рамках одного коннекта запустить несколько вставок в одну таблицу. С помошью ADO, в принципе, это возможно (при использовании ассинхронного режима). Но повторяюсь, в контексте работы триггера это не важно.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос по работе insert или триггера / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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