Понадобилось мне передать аутсорсному разработчику базу данных 1С, но вот незадача - разрабатывалась некая интеграция, требующая прямого чтения из таблиц SQL. При этом конфигурация им нужна была всего-навсего для того, чтобы запускать там обработку, выдающую структуру хранения с именами таблиц и полей объектов конфигурации. Так как рабочая база достаточно большая, и в ней ведется разработка, каждый раз делать им копию боевой базы было довольно сложно - и места жалко, и коммерческие данные лишний раз копировать на сторону не стоит. А передавать им конфигурацию явно придется не один раз.
Вот и родился этот скрипт. Он написан на скорую руку, требует доработки напильником под конкретную базу - мне понадобилось, например, вручную добавить туда имена нескольких таблиц, которые нужно было копировать целиком. Но понимающий админ разберется быстро и, надеюсь, сэкономит на этом свое время.
Скрипт работает не только в рамках одного сервера, но и через связанный сервер, правда, нужно, чтобы на принимающем сервере существовал логин, являющийся владельцем базы на исходном. Детали настройки безопасности между связанными серверами опускаю.
Скрипт не переносит индексы, и целостность данных в целевой базе скорее всего будет нарушена. После выполнения скрипта необходимо в целевой базе выполнить тестирование и исправление, выбрав как минимум два пункта - реиндексацию и реструктуризацию.
Написано на MS SQL под Windows, наверно, можно и к Линуксу адаптировать.
Кто не готов поблагодарить автора одним стартмани - может скачать файл с GitHub.