Як скинути базу даних 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.