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

Откуда:
Сообщений: 2649
Отчего такой триггер может клинить на первичный и вторичный ключ? При записи в табл. ругается на условие данных.

ALTER   TRIGGER Договор_ins
ON dbo.Договор
FOR INSERT
AS 
IF @@ROWCOUNT>0
BEGIN

		INSERT INTO log_base_sbyt(tabls,users,comp,oper,dat,id_tab,fields,new_val)
		SELECT 'Договор',SYSTEM_USER,host_name(),'INSERT',GETDATE(),inserted.Ndg,'Статус',inserted.Статус
		FROM inserted

		INSERT INTO log_base_sbyt(tabls,users,comp,oper,dat,id_tab,fields,new_val)
		SELECT 'Договор',SYSTEM_USER,host_name(),'INSERT',GETDATE(),inserted.Ndg,'Договор',inserted.Договор
		FROM inserted

		INSERT INTO log_base_sbyt(tabls,users,comp,oper,dat,id_tab,fields,new_val)
		SELECT 'Договор',SYSTEM_USER,host_name(),'INSERT',GETDATE(),inserted.Ndg,'ДатаЗакл',CONVERT(nvarchar(10),inserted.ДатаЗакл,104)
		FROM inserted

		INSERT INTO log_base_sbyt(tabls,users,comp,oper,dat,id_tab,fields,new_val)
		SELECT 'Договор',SYSTEM_USER,host_name(),'INSERT',GETDATE(),inserted.Ndg,'ТипОплаты',inserted.ТипОплаты
		FROM inserted

		INSERT INTO log_base_sbyt(tabls,users,comp,oper,dat,id_tab,fields,new_val)
		SELECT 'Договор',SYSTEM_USER,host_name(),'INSERT',GETDATE(),inserted.Ndg,'ДатаОконч',CONVERT(nvarchar(10),inserted.ДатаОконч,104)
		FROM inserted
		
		INSERT INTO log_base_sbyt(tabls,users,comp,oper,dat,id_tab,fields,new_val)
		SELECT 'Договор',SYSTEM_USER,host_name(),'INSERT',GETDATE(),inserted.Ndg,'СуммаДог',CAST(inserted.СуммаДог AS nvarchar(50))
		FROM inserted

		INSERT INTO log_base_sbyt(tabls,users,comp,oper,dat,id_tab,fields,new_val)
		SELECT 'Договор',SYSTEM_USER,host_name(),'INSERT',GETDATE(),inserted.Ndg,'ДатаДняЗакл',CONVERT(nvarchar(10),inserted.ДатаДняЗакл,104)
		FROM inserted
END
29 июл 09, 17:33    [7475417]     Ответить | Цитировать Сообщить модератору
 Re: Триггер  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Автор, ну Вы же не первый день на форуме, неужели не знаете, что текст ошибки надо приводить?
29 июл 09, 17:35    [7475428]     Ответить | Цитировать Сообщить модератору
 Re: Триггер  [new]
Glory
Member

Откуда:
Сообщений: 104760
Ошибка в 14ой строке
29 июл 09, 17:41    [7475473]     Ответить | Цитировать Сообщить модератору
 Re: Триггер  [new]
Джонни Кейдж
Member

Откуда: стольный град Киев
Сообщений: 31
Интересно, а для чего в самом начале триггера условие
IF @@ROWCOUNT>0
?

Ну и текст ошибки в студию, конечно...
29 июл 09, 18:03    [7475638]     Ответить | Цитировать Сообщить модератору
 Re: Триггер  [new]
Var79
Member

Откуда:
Сообщений: 890
интерестно из за чего была ошибка
29 июл 09, 18:20    [7475724]     Ответить | Цитировать Сообщить модератору
 Re: Триггер  [new]
а почему не так?
Guest
		INSERT INTO log_base_sbyt(tabls,users,comp,oper,dat,id_tab,fields,new_val)

		SELECT 'Договор',SYSTEM_USER,host_name(),'INSERT',GETDATE(),inserted.Ndg,'Статус',inserted.Статус
		FROM inserted
		
		UNION ALL

		SELECT 'Договор',SYSTEM_USER,host_name(),'INSERT',GETDATE(),inserted.Ndg,'Договор',inserted.Договор
		FROM inserted

		UNION ALL

		SELECT 'Договор',SYSTEM_USER,host_name(),'INSERT',GETDATE(),inserted.Ndg,'ДатаЗакл',CONVERT(nvarchar(10),inserted.ДатаЗакл,104)
		FROM inserted

		UNION ALL

		SELECT 'Договор',SYSTEM_USER,host_name(),'INSERT',GETDATE(),inserted.Ndg,'ТипОплаты',inserted.ТипОплаты
		FROM inserted

		UNION ALL

		SELECT 'Договор',SYSTEM_USER,host_name(),'INSERT',GETDATE(),inserted.Ndg,'ДатаОконч',CONVERT(nvarchar(10),inserted.ДатаОконч,104)
		FROM inserted
		
		UNION ALL

		SELECT 'Договор',SYSTEM_USER,host_name(),'INSERT',GETDATE(),inserted.Ndg,'СуммаДог',CAST(inserted.СуммаДог AS nvarchar(50))
		FROM inserted

		UNION ALL

		SELECT 'Договор',SYSTEM_USER,host_name(),'INSERT',GETDATE(),inserted.Ndg,'ДатаДняЗакл',CONVERT(nvarchar(10),inserted.ДатаДняЗакл,104)
		FROM inserted
29 июл 09, 18:28    [7475761]     Ответить | Цитировать Сообщить модератору
 Re: Триггер  [new]
Var79
Member

Откуда:
Сообщений: 890
интерестно в чем преимущество или недостаток кроме внешнего вида :)
29 июл 09, 18:29    [7475763]     Ответить | Цитировать Сообщить модератору
 Re: Триггер  [new]
верняк быстрее
Guest
Var79
интерестно в чем преимущество или недостаток кроме внешнего вида :)
29 июл 09, 18:30    [7475770]     Ответить | Цитировать Сообщить модератору
 Re: Триггер  [new]
Var79
Member

Откуда:
Сообщений: 890
прям таки и верняк... не верю :-Р
29 июл 09, 18:38    [7475797]     Ответить | Цитировать Сообщить модератору
 Re: Триггер  [new]
твоё право)))
Guest
Var79
прям таки и верняк... не верю :-Р
29 июл 09, 18:44    [7475819]     Ответить | Цитировать Сообщить модератору
 Re: Триггер  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Ооо... Давненько vah не появлялся... Но узнаю его с первой же строчки...
29 июл 09, 20:04    [7475979]     Ответить | Цитировать Сообщить модератору
 Re: Триггер  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Джонни Кейдж
Интересно, а для чего в самом начале триггера условие
IF @@ROWCOUNT>0
?
А что Вы имеете против?
29 июл 09, 20:05    [7475982]     Ответить | Цитировать Сообщить модератору
 Re: Триггер  [new]
vah
Member

Откуда:
Сообщений: 2649
pkarklin
Ооо... Давненько vah не появлялся... Но узнаю его с первой же строчки...


Да вот, соскучился маненько. Думаю, что бы написать...? И вот.. почти шедевр.
29 июл 09, 20:37    [7476032]     Ответить | Цитировать Сообщить модератору
 Re: Триггер  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
vah
Думаю, что бы написать...?
Ну не знаю... ну, например, текст ошибки напишите...
30 июл 09, 10:22    [7477169]     Ответить | Цитировать Сообщить модератору
 Re: Триггер  [new]
vah
Member

Откуда:
Сообщений: 2649


К сообщению приложен файл. Размер - 0Kb
30 июл 09, 15:51    [7480001]     Ответить | Цитировать Сообщить модератору
 Re: Триггер  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36799
set nocount on в начало триггера напишите.
30 июл 09, 15:52    [7480010]     Ответить | Цитировать Сообщить модератору
 Re: Триггер  [new]
Glory
Member

Откуда:
Сообщений: 104760
vah

Это сообщение вашей программы, а не сервера
30 июл 09, 15:52    [7480011]     Ответить | Цитировать Сообщить модератору
 Re: Триггер  [new]
vah
Member

Откуда:
Сообщений: 2649
Гавриленко Сергей Алексеевич
set nocount on в начало триггера напишите.


Круто. Сработало!!! А это корректно?
30 июл 09, 16:02    [7480105]     Ответить | Цитировать Сообщить модератору
 Re: Триггер  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31161
vah
Гавриленко Сергей Алексеевич
set nocount on в начало триггера напишите.


Круто. Сработало!!! А это корректно?
Корректно.

Это маскирует распространённую ошибку в клиентских приложениях - неправильную обработку возвращаемой сервером информации о количестве обработанных запросом строк.
30 июл 09, 16:09    [7480163]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить