Як скинути базу даних Microsoft SQL Server до сценарію SQL?


124

Чи є можливість експортувати базу даних Microsoft SQL Server до скрипту sql?

Я шукаю те, що поводиться аналогічно mysqldump, приймаючи ім’я бази даних та створюю єдиний скрипт, який відтворить усі таблиці, збережені процедури, знову вставить усі дані тощо.

Я бачив http://vyaskn.tripod.com/code.htm#inserts , але в ідеалі я хочу, щоб щось відтворило все (не лише дані), що працює в один крок для створення остаточного сценарію.


@Matt Так, дані не експортуються. Тому я згадав, що слід поєднувати це із запропонованим вами сценарієм. Цей метод все ж будує сценарій у правильному порядку.
— Хуліо Сесар

Насправді в Mangement Studio 2008 вам просто потрібно ввімкнути опцію "експорт даних", і сценарій буде містити як схему, так і вставляти заяви.
— user24161


@MattSheppard, будь ласка, прийміть одну з відповідей
— 030

Відповіді:


111

У студії управління SQL Server правою кнопкою миші клацніть на базі даних та виберіть Завдання / Створення скриптів. Виконайте майстер, і ви отримаєте сценарій, який відтворює структуру даних у правильному порядку відповідно до іноземних ключів. На кроці майстра під назвою "Встановити параметри сценарію" виберіть "Додатково" та змініть параметр "Типи даних до сценарію" на "Схема та дані"

ПОРАДА: На останньому кроці виберіть "Сценарій до нового вікна запитів", він працюватиме набагато швидше таким чином.


18
Просто пам’ятайте, щоб перейти до розширених варіантів і сказати це сценарію не лише схеми, а й даних.
— RomanSt

2
@romkyns заслуговує на всі голоси! "Типи даних для сценарію" - це точне ім'я опції. Вам потрібно вибрати "Схему та дані".
— солідау

2
Основна проблема сценаріїв, створених із SSMS, полягає в тому, що вони не впорядковані правильно для врахування залежностей. Це не є проблемою для невеликих баз даних, де ви можете це зробити вручну, але це, безумовно, проблема, коли база даних отримує понад 50 об'єктів. Поки ми успішно використовували для цього ApexSQL Script . Це преміальний інструмент, але ви можете використовувати його в пробному режимі, щоб виконати роботу. Я думаю, що Red Gate також має подібний інструмент.
— Девід Смітерс

34

Спробуйте майстер публікації баз даних Sql . Вам може знадобитися повторно замовити скрипт, щоб змусити його запускатись в один кадр, хоча через залежності, але він буде включати вашу схему та дані.

Якщо у вас не встановлено об’єктів SQL XMO 2005, ви отримаєте помилку під час запуску майстра . Вам потрібна колекція об'єктів управління Microsoft SQL Server 2005


5
Насправді, вам не потрібно впорядковувати скрипт, оскільки він скасовує всі обмеження, створює схему, вставляє дані та, нарешті, відтворює обмеження.
— Даніель Сільвейра

Дивовижно, це дуже акуратно
— звуковий сигнал

Це чудовий інструмент, хоча підтримує лише SQL Server 2015. Як щодо 2008 та пізніших?
— Нам G VU

11

Я вважав SQL Dumper досить корисним. Це безкоштовно, тому ви можете спробувати. Це дозволяє вибирати таблиці та стовпці бази даних, представлення даних і навіть результати користувацьких запитів у вигляді операторів вставки SQL.


Остання стабільна версія не працює зі збереженими процедурами.
— VMAtm

1
Останню версію можна завантажити з download.cnet.com/SQL-Dumper/3000-10254_4-10514574.html
— Raynet

7

Не знайшовши потрібного інструменту, я вирішив створити власну: утиліту командного рядка sqlserverdump. Перевірте це на http://sqlserverdump.codeplex.com/ . Він відтворить схему та дані в один крок.


6

Спробуйте DBSourceTools . Він призначений для скриптування вихідної бази даних та повторного розгортання до цільової бази даних. Це сценарій схеми та даних.


6

Рекомендоване рішення працює лише на sql 2000 та 2005. Якщо ви хочете зробити це в SQL 2008,

Ви можете зробити це за допомогою SQL 2008 без будь-яких інших плагінів. Клацніть правою кнопкою миші на базі даних та виберіть "Завдання -> Створити сценарії ...". Виберіть базу даних і ви хочете створити резервну копію. Клацніть далі та встановіть "Дані сценарію" на істину.

Подальша документація за посиланням:

http://blog.sqlauthority.com/2011/05/07/sql-server-2008-2008-r2-create-script-to-copy-database-schema-and-all-the-objects-data-schema- зберігаються-процедура-функції-тригери-таблиці-перегляди-обмеження-і-всі-інші-об’єкти бази даних /



2

Майстер публікації баз даних SQL Server, здається, справді найкращий спосіб зробити це. Проблема в цьому полягає в тому, що він, здається, не працює в Windows 7. Мені довелося використовувати його старий комп'ютер. З позитивного боку, він працює з більш старими версіями SQL Server, як 2000 рік.

Для новіших версій SQL та операційних систем це програмне забезпечення, можливо, варто переглянути: http://sqlbackupandftp.com/


0

Ombelt - це гарний інструмент для експорту БД сервера MS SQL. www.ombelt.com

так само, як і інші засоби скидання БД.

Працює для мене.


0

Перевірте проект скидання схеми Microsoft SQL Server ( mssql-schema-dumpінструмент на GitHub ).

Використання: mssqldump -h data-source-host -u username -p password [-d path/for/files] [-c] [-s] [-a] [-b DB1[,DB2[,DB3]]]

Експорт підтримує:

  • БД: схема, типи користувачів, типи таблиць користувачів, тригери, повнотекстові каталоги, повні списки списку тексту, збережені процедури, функції
  • Таблиці DB.The: Схема, тригери, індекси, DRI, статистика
  • DB.Views: схема, тригери, індекси, DRI, статистика
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.