копирование данных между базами
SQL 2000. Под ним, на одной машине, крутиться около 60 баз. Надо скопировать данные из одной БД в другие. Вопрос - вот такое стандартное решение приемлимо? Или как-то это более корректно надо решать?
BEGIN TRANSACTION INSERT INTO TEST1.dbo.field1 (id, sd, wert, err, note) SELECT id, sd, wert, err, note FROM PRIMA.dbo.field WHERE id = 10 INSERT INTO TEST2.dbo.field1 (id, sd, wert, err, note) SELECT id, sd, wert, err, note FROM PRIMA.dbo.field WHERE id = 10 INSERT INTO TEST3.dbo.field1 (id, sd, wert, err, note) SELECT id, sd, wert, err, note FROM PRIMA.dbo.field WHERE id = 10 .......... ........ .... COMMIT TRANSACTION |
Не пробовал в одной транзакции писать в несколько БД, но по идее это вполне корректное использование.
|
Ну что же, раз возражений нет считаем такой ход нормальным :)
|
А я бы сделал еще Stored Procedure и выполнял ее с параметром и в планировщик. А ход вполне допустимый :)
|
Ход совершенно правильный и корректный. В отличие от всяких DTS, вы всегда сможете свою процедуру отладить / поменять / корректно перенести на другой сервер.
Несколько моментов: - имена объектов БД вы записали как-то странно =) У вас поля - в скобочках явно... - пользователь dbo подразумевается "по умолчанию". Если вы ничего не мудрили с владельцами объектов, то вместо DB.dbo.table можете смело писать DB..table /* да, именно через ДВЕ точки !! */ - использовав в начале скрипта конструкцию USE DB; вы укажете текущую рабочую БД - и в этом случае в скрипте явно указывать потребуется только БД, отличную от текущей. То есть ваше Цитата:
Цитата:
|
Amin, хорошие ремарки. Учту.
|
Время: 04:35. |
Время: 04:35.
© OSzone.net 2001-