Страницы

Поиск по вопросам

понедельник, 1 апреля 2019 г.

Программно сгенерировать скрипт для всех обьектов в базе

В MS SQL есть инструмент генерации скриптов базы (правый клик на базе, затем Tasks -> Generate Scripts -> all tables + в настройках advanced заменить Types of data to script с Schema only на Data only).
Я пользуюсь этим инструментом, чтобы сделать резервную копию базы с продакшн сервера: это appharbor, я не могу сделать бекап локально и забрать файл с сервера.
А можно ли запускать этот инструмент автоматически, программным способом, например из c#? Хочу перейти к регулярным резервным копиям по расписанию, а не делать изредка по настроению копии "на всякий случай".
На сервере стоит SQL Server 2008 R2.


Ответ

Генерация скрипта - не самый удобный вариант для экспорта базы вместе с данными.
Есть утилита sqlpackage, которая позволяет экспортировать/импортировать базу в формате bacpac. Это стандартный способ для импорта/экспорта баз для Azure SQL, где нет прямого доступа к серверу:
sqlpackage.exe /Action:Export /ssn:tcp:.database.windows.net,1433 /sdn: /su: /sp: /tf: /p:Storage=File
Соответствующие пункты в контекстном меню в SMSS - Import / Export Data Tier Application.
Для импорта используется bulk insert, что в разы быстрее простой построчной вставки.

Комментариев нет:

Отправить комментарий