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

Откуда:
Сообщений: 89
В SQL-е есть таблица VALUES где ERP программа хранит суммы и количества заказов. А также есть таблица R_VALUES, где тоже хранятся записи о суммах и количествах принятых товаров.
Написал триггер чтоб при вводе данных в VALUES они копировались в R_VALUES.
Когда я делаю ввод данных в таблицу VALUES из SQL сервера, то данные копируются. Но если делать заказ из программы во время которой программа делает INSERT в таблицу VALUES, то не срабатывает. Не только не копируется, но и в само поле VALUES программа не вводит данные.

В программе появляется сообщение о том что невозможно вставить данные, так как это противоречит бизнес логике программы.
Не объязательно в R_VALUES, ни в одну таблицу невозможно скопировать из VALUES через программу.

Возможно ли такое чтоб программа запрешала делать выборку данных из таблицы и вставлять эти данные в другую? Сам СКЛ не ругается и делает эту задачу если вводить запрос в самом СКЛе.
Программе ведь должно быть по барабану что я делаю из таблицы VALUES селект, а затем вставляю куда-то эти данные
27 июл 12, 02:10    [12922645]     Ответить | Цитировать Сообщить модератору
 Re: ERP не хочет работать при написании триггера  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8877
Скорее всего, данные вставляются НЕ в одну таблицу. Приведите текст сообщения программы и хотябы условно текст вашего тригера.

А может вы в своей таблице чего- то напортачили? Короче, пример - в студию ( и посмотрите ограничения на вашей таблице)
27 июл 12, 03:30    [12922708]     Ответить | Цитировать Сообщить модератору
 Re: ERP не хочет работать при написании триггера  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
SET NOCOUNT ON
в первых строках триггера есть?
27 июл 12, 08:48    [12923032]     Ответить | Цитировать Сообщить модератору
 Re: ERP не хочет работать при написании триггера  [new]
elshad82
Member

Откуда:
Сообщений: 89
SIMPLicity_
Скорее всего, данные вставляются НЕ в одну таблицу. Приведите текст сообщения программы и хотябы условно текст вашего тригера.

А может вы в своей таблице чего- то напортачили? Короче, пример - в студию ( и посмотрите ограничения на вашей таблице)


Нет. Триггер отрабатывает правильно. Потому что при инсерте из СКЛ-а данные вствляются в таблицу как надо. А когда программа делает ИНСЕРТ то выдает ошибку (вернее ограничение).
Код триггера прост

CREATE TRIGGER TSS_RNVE_MOVE_INS ON SunSystemsData.dbo.TSS_RCVN_LINE_VAL_ENTRY
FOR INSERT
AS
INSERT INTO SunSystemsData.dbo.TSS_MOL_VAL_ENTRY (UPDATE_COUNT,LAST_CHANGE_USER_ID,LAST_CHANGE_DATETIME,VLAB_ID,MO_TXN_REF,MOL_NUM,ULAB_CODE,CURR_CODE,TXN_CURR_FLAG,TXN_DEFN_FLAG,PB_ID,VAL,USER_OVERRIDDEN,NON_ENTERED_VAL,RATE_OVERRIDE,CONV_RATE,RCVN_LINE_VAL_ENTRY_ID)
SELECT UPDATE_COUNT,LAST_CHANGE_USER_ID,LAST_CHANGE_DATETIME,VLAB_ID,'MN'+ RIGHT(RCVN_TXN_REF,28),RCVN_LINE_NUM,ULAB_CODE,CURR_CODE,TXN_CURR_FLAG,TXN_DEFN_FLAG,PB_ID,VAL,USER_OVERRIDDEN,NON_ENTERED_VAL,RATE_OVERRIDE,CONV_RATE,RCVN_LINE_VAL_ENTRY_ID
FROM inserted

и работает нормально.

Причем неважно в какую таблицу я вставляю данные. Даже если создаю временную таблицу, которую не использует программа, то туда тоже не вставляет. Программа просто не хочет работать когда срабатывает триггер.
Моя версия происходящего: При вставлении данных в свою таблицу, программа считывает что при вставке сработает триггер и запрещает действие.
Другого логического объяснения у меня нет.
Потому как триггер не воздействует на саму таблицу в которую нелает вставку программа. Триггер лишь выбирает оттуда СЕЛЕКТОМ, а затем может вставить куда угодно.
27 июл 12, 09:00    [12923064]     Ответить | Цитировать Сообщить модератору
 Re: ERP не хочет работать при написании триггера  [new]
elshad82
Member

Откуда:
Сообщений: 89
pkarklin
SET NOCOUNT ON
в первых строках триггера есть?


Нет такой строки. Его и в других таблицах нет где я создавал триггер. Но в них все работает. код триггера очень прост:

CREATE TRIGGER INSTRIG ON table1
FOR INSERT
AS
INSERT INTO table2
SELECT col1, col2,col3,col4,........
FROM table1
27 июл 12, 09:04    [12923071]     Ответить | Цитировать Сообщить модератору
 Re: ERP не хочет работать при написании триггера  [new]
elshad82
Member

Откуда:
Сообщений: 89
pkarklin
SET NOCOUNT ON
в первых строках триггера есть?


Поставил SET NOCOUNT ON.
Все равно не выполняется
27 июл 12, 09:13    [12923102]     Ответить | Цитировать Сообщить модератору
 Re: ERP не хочет работать при написании триггера  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
elshad82
pkarklin
SET NOCOUNT ON
в первых строках триггера есть?


Нет такой строки. Его и в других таблицах нет где я создавал триггер. Но в них все работает. код триггера очень прост:

CREATE TRIGGER INSTRIG ON table1
FOR INSERT
AS
INSERT INTO table2 <-- Список полей где??? © :)
SELECT col1, col2,col3,col4,........
FROM table1
27 июл 12, 09:15    [12923111]     Ответить | Цитировать Сообщить модератору
 Re: ERP не хочет работать при написании триггера  [new]
elshad82
Member

Откуда:
Сообщений: 89
iap
elshad82
пропущено...


Нет такой строки. Его и в других таблицах нет где я создавал триггер. Но в них все работает. код триггера очень прост:

CREATE TRIGGER INSTRIG ON table1
FOR INSERT
AS
INSERT INTO table2 <-- Список полей где??? © :)
SELECT col1, col2,col3,col4,........
FROM table1


Есть список полей. При написании примера пропустил. Хотя если вставляются все поля без исключения, то не объязательно их указывать
27 июл 12, 09:26    [12923148]     Ответить | Цитировать Сообщить модератору
 Re: ERP не хочет работать при написании триггера  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
elshad82
Моя версия происходящего: При вставлении данных в свою таблицу, программа считывает что при вставке сработает триггер и запрещает действие.
Да вы без версий, просто посмотрите в профайлере, что там происходит.
27 июл 12, 09:26    [12923149]     Ответить | Цитировать Сообщить модератору
 Re: ERP не хочет работать при написании триггера  [new]
elshad82
Member

Откуда:
Сообщений: 89
alexeyvg
elshad82
Моя версия происходящего: При вставлении данных в свою таблицу, программа считывает что при вставке сработает триггер и запрещает действие.
Да вы без версий, просто посмотрите в профайлере, что там происходит.


Уже смотрел. Сам черт не разберет то что там понаписано. В профайле указана - выборка данных для ввода в таблицу скриптом программы. А следующая строка ROLLBACK транзакции и END.
Это полезная информация которую я выудил из нескольких десятков строк профайла.
27 июл 12, 09:31    [12923177]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить