Запустите один и тот же сценарий репликации для нескольких баз данных. - PullRequest
0 голосов
/ 14 апреля 2009

У нас есть несколько баз данных SQL Server 2000 (я знаю, что нам нужно обновить), которые имеют одинаковую структуру и настроены для репликации на другой сервер. Проблема в том, что всякий раз, когда мне нужно изменить структуру (что обычно довольно легко сделать на всех базах данных, особенно с помощью инструментов от Red Gate), мне приходится останавливать репликацию, вносить изменения в структуру, а затем снова настраивать репликацию. Действия по настройке репликации для каждой базы данных занимают всего несколько минут, но они повторяются и сводят меня с ума. У меня есть IDE создать сценарий процедуры репликации, а затем просто заменить имя предыдущей базы данных именем следующей базы данных и запустить сценарий. Все еще раздражает, но быстрее, чем щелкать по IDE и забывать опцию.

Я пробовал что-то вроде использования "SP_MSFOREEACHDB", но это не выглядело многообещающе.

Полагаю, я должен просто использовать TSQL, сгенерированный из IDE, и использовать его в качестве отправной точки для создания нового сценария TSQL, передав ему имя базы данных в качестве параметра. И затем, когда что-то меняется со структурой базы данных, мне нужно обратиться к этому в сценарии репликации TSQL и внести изменения там. Это проблема для кого-то еще? Есть ли в 2005 или 2008 году улучшенная версия SP_MSFOREACHDB, поэтому мне не пришлось бы включать какой-нибудь сумасшедший сценарий и просто заставить IDE создавать сценарий, когда есть изменения, которые я мог бы затем легко использовать в нескольких базах данных?

Ответы [ 3 ]

1 голос
/ 15 апреля 2009

Вы используете репликацию SQL Server? Если так, почему вы не вносите изменения в базу данных публикации и не позволяете ей распространять изменения схемы на своих подписчиков? Мы делаем это время от времени на SQL 2005, и по большей части это работает хорошо; У меня нет опыта репликации на 2000 серверах.

0 голосов
/ 14 апреля 2009
Инструмент

SQLCMD может подключаться к SQL Server 2000 и включать взаимодействие из командной строки. Использование параметризованных запросов и фиксированный набор файлов .bat (по одному для каждого сервера) может стать хорошей альтернативой тому, что вы делаете сейчас.

0 голосов
/ 14 апреля 2009

Если вы можете использовать SQL Server Management studio, то в пакете инструментов SSMS есть виджет, позволяющий запускать один и тот же сценарий в разных базах данных.

...