Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 bulk insert и trigger типа Insert  [new]
FiXu
Member

Откуда:
Сообщений: 59
Парни, подскажите как решить проблему с bulk insert.

У меня есть буржуйская софтина, которая вставляет данные в таблицу при помощи инструкции bulk insert, при этом квалификатор FIRE_TRIGGERS не задан, соответственно тригер типа INSERT не выполняется.

Заставить софтину использовать FIRE_TRIGGERS в инструкции bulk insert я никак не смогу.

Можно ли как-нибудь подругому заставить сервак выполнять тригер при массовом импорте bulk insert?

сервер sql2000.
10 авг 09, 07:26    [7515845]     Ответить | Цитировать Сообщить модератору
 Re: bulk insert и trigger типа Insert  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
ИМХО, ввести промежуточную точку
10 авг 09, 09:42    [7516027]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: bulk insert и trigger типа Insert  [new]
novs
Guest
поднимаю тему.
мне надо отслеживать все изменения таблицы,
а когда в нее загружают данные из файла SSIS-пакетом,
триггер не срабатывает.
загружает не наш отдел, невозможно их заставить выставить в пакете FIRE_TRIGGERS,
и в любом случае весь смысл в том, чтоб отслеживать даже изменения,
которые могут внести и другие "загружатели".
что означает "ввести промежуточную точку "?
как еще можно отследить "чужие" BULK INSERT-ы?
22 окт 12, 13:30    [13356264]     Ответить | Цитировать Сообщить модератору
 Re: bulk insert и trigger типа Insert  [new]
Glory
Member

Откуда:
Сообщений: 104760
novs
как еще можно отследить "чужие" BULK INSERT-ы?

Если вы про отслеживание команд, то для этого есть трассировка и Change Data Capture
Если вы про отслеживание данных, то Change Data Capture.
Если вы про выполнение каких то дополнительных действий при INSERT, то для этого нужен триггер.

novs
триггер не срабатывает.
загружает не наш отдел, невозможно их заставить выставить в пакете FIRE_TRIGGERS,

Можно не давать права на BULK INSERT.
22 окт 12, 13:36    [13356319]     Ответить | Цитировать Сообщить модератору
 Re: bulk insert и trigger типа Insert  [new]
novs
Guest
EXEC sys.sp_cdc_enable_db


Msg 22902, Level 16, State 1, Procedure sp_cdc_enable_db, Line 19
Caller is not authorized to initiate the requested action. Sysadmin privileges are required.


я только db_owner.

надо отслеживать изменение данных, т.к. они их подгружают задним числом,
т.е. фальсифицируют.
мой триггер пишет все новые значения в лог, и ничего не пишет, если грузят запуская пакет.
пардон за нубский вопрос: можно ли сделать тот SSIS-пакет read only
и дать права только на него?
т.е. вообще отобрать bulk insert я не могу, они сами должны данные загружать.
надо сделать так, чтоб могли грузить только с помощью одного пакета,
который не могли бы редактировать.
если б пакет был процедура, я знаю как дать права только на нее и на все остальные отобрать.
а как выдать права на пакет, где про это прочитать?
22 окт 12, 13:58    [13356507]     Ответить | Цитировать Сообщить модератору
 Re: bulk insert и trigger типа Insert  [new]
Glory
Member

Откуда:
Сообщений: 104760
novs
т.е. вообще отобрать bulk insert я не могу, они сами должны данные загружать.

И кто им выдал права на bulk insert ?
22 окт 12, 14:01    [13356535]     Ответить | Цитировать Сообщить модератору
 Re: bulk insert и trigger типа Insert  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 2995
есть возможность добавить поле типа timestamp или rowversion ?
22 окт 12, 14:10    [13356607]     Ответить | Цитировать Сообщить модератору
 Re: bulk insert и trigger типа Insert  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
novs,

а Вы базу в full recovery не пробовали перевести?
22 окт 12, 14:17    [13356668]     Ответить | Цитировать Сообщить модератору
 Re: bulk insert и trigger типа Insert  [new]
novs
Guest
HandKot,
да.
но чем это поможет?
пакет сперва делает таблице truncate, потом данные загружает.
т.е. будет все перезаписано
22 окт 12, 14:19    [13356680]     Ответить | Цитировать Сообщить модератору
 Re: bulk insert и trigger типа Insert  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 2995
да я почему-то подумал, что инсерт идет в целевую таблицу, а не буферную

тогда просто создайте поле с дефолтным значением GetDate, и пока они про него (поле не узнают) в поле будет хранится адекватная дата вставки
22 окт 12, 14:36    [13356806]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить