Mail.ruПочта0Мой Мир0ОдноклассникиВКонтактеИгры0ЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Триггер на копирование из одной бд в другую.

Артем Янчук Знаток (256), на голосовании 7 лет назад
У меня есть две базы данных в MS SQL Server, в них совершенно одинаковые таблицы. Как мне сделать так, чтобы при добавлении записи в одну таблицу одной базы данных, эта запись копировалась в другую таблицу другой базы данных?

Первая бд - one
Вторая бд - two
Обе таблицы называются Place

Пытаюсь написать триггер

CREATE TRIGGER T_Place
ON one.Place

Но возникает ошибка ( объект one.Place не существует или не допустим в этой операции)
Голосование за лучший ответ
Chrono Профи (809) 7 лет назад
Вариант 1 - репликация - вторую базу можно сделать онлайн копией первой - архитектурное решение, триггеры не нужны
Вариант 2 - настроить дб линк между базами и обращаться к таблицам в two через него при изменении данных в базе one - более простой способ
Артем ЯнчукЗнаток (256) 7 лет назад
Эти БД находятся на одном и том же локальном сервере.
Chrono Профи (809) если это один инстанс, то я бы первым делом проверил права доступа, если обьект не существует, то скорее всего на него просто прав нет
F J Мыслитель (8660) 7 лет назад
Как сказано выше, репликация - то что надо. Но - триггеры так триггеры.

USE one;
DELIMITER |

CREATE TRIGGER T_Place BEFORE INSERT ON one.Place
FOR EACH ROW
BEGIN
INSERT INTO two.Place(field1,field2) VALUES (NEW.field1,NEW.field2);
END;
|

DELIMITER ;

Вроде, так.
Похожие вопросы