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

Откуда:
Сообщений: 44
Всем привет!
Подскажите что не так... Создаю триггер в одной БД на изменение значения в поле, и хочу передать это значение в другую БД на этом же сервере. Помойму такие операции триггер должен потдерживать. При изменении поля пишет "Invalid object name 'VezaDB.Заказы'". Вроде неявная ссыска, усе ок должно быть, мож настройки сервака какие?


set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

alter
 TRIGGER [DataToJournal] ON [dbo].[Заказы]   
   FOR UPDATE
AS 
if update(РасчетГотПлан) begin

	declare 
	@idJournal int, @RaschetGotPlan datetime

	select @idJournal=IdЖурнала, @RaschetGotPlan=РасчетГотПлан from inserted	
	 
	update VezaDB.Заказы set VezaDB.Заказы.РасчетГотПлан = @RaschetGotPlan where VezaDB.Заказы.id = @idJournal

end
23 сен 09, 12:06    [7696903]     Ответить | Цитировать Сообщить модератору
 Re: Обновление нетекушей БД в триггере  [new]
Glory
Member

Откуда:
Сообщений: 104760
Потому что формат обращения такой - база.владелец.объект
23 сен 09, 12:10    [7696928]     Ответить | Цитировать Сообщить модератору
 Re: Обновление нетекушей БД в триггере  [new]
Masian
Member

Откуда:
Сообщений: 44
Glory
Потому что формат обращения такой - база.владелец.объект

Огромное спасибо! помогло. буду знать
23 сен 09, 12:16    [7696973]     Ответить | Цитировать Сообщить модератору
 Re: Обновление нетекушей БД в триггере  [new]
Masian
Member

Откуда:
Сообщений: 44
Возникла еще одна непонятка... При выполнении триггера, и передаче нужных данных в другую БД все проходин нормально, кроме того, что на другой БД также стоит триггер, и вот он как раз и не выполняется. Если править сам грид, то все ок, все работает. Такое ощущение, что триггер игнорирут изменения сделанные самой системой (другим триггером). В чем проблема?
24 сен 09, 09:20    [7701116]     Ответить | Цитировать Сообщить модератору
 Re: Обновление нетекушей БД в триггере  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
Может у вас запрещены вложенные триггеры?
Посмотрите параметр nested triggers на сервере.
24 сен 09, 09:29    [7701146]     Ответить | Цитировать Сообщить модератору
 Re: Обновление нетекушей БД в триггере  [new]
DENIS_CHEL
Member

Откуда:
Сообщений: 23097
Что значит “править сам грид”?

Что показывает профайлер?

Текст триггеров можно увидеть?

---------------------------------------------------------
- Ну вы тут и нафлудили! - сказал Геракл, зайдя на Авгиев форум.
24 сен 09, 09:30    [7701147]     Ответить | Цитировать Сообщить модератору
 Re: Обновление нетекушей БД в триггере  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
Вот это
if update(РасчетГотПлан) begin
даже при update РасчетГотПлан= РасчетГотПлан будет срабавтывать

триггер сработает только на одну запись, при пакетной обработке будет ошибка.
видаь и в других тригеарх подобные ошибки.
24 сен 09, 09:42    [7701181]     Ответить | Цитировать Сообщить модератору
 Re: Обновление нетекушей БД в триггере  [new]
Masian
Member

Откуда:
Сообщений: 44
--__Александр__--
Может у вас запрещены вложенные триггеры?
Посмотрите параметр nested triggers на сервере.


Да, действительно Ваше предположение мне помогло. Немного уточню, вдруг кому пригодиться.

Вот что пишет справка:
Установка параметра nested triggers
1. В обозревателе объектов щелкните правой кнопкой мыши сервер и выберите пункт Свойства.
2. Щелкните узел Прочие (или Дополнительно) настройки сервера.
3. На вкладке Общие (или Разное) отметьте или снимите флажок Разрешить триггерам вызывать другие триггеры.

Спасибо за помощь!
24 сен 09, 09:48    [7701200]     Ответить | Цитировать Сообщить модератору
 Re: Обновление нетекушей БД в триггере  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
Лучше использовать это : sp_configure.
24 сен 09, 09:51    [7701212]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить