Створіть сценарій SQL, який створює базу даних та таблиці


102

У мене є база даних SQL і таблиці, які я хотів би скопіювати в інший SQL Server. Я хотів би створити сценарій SQL, який створює базу даних і таблиці в одному сценарії.

Я можу створити сценарій "Створити", використовуючи студію управління SQL для кожного випадку (база даних та таблиці), але хотілося б знати, чи достатньо буде поєднання обох сценаріїв "Створити" в один сценарій.

Дякую.


26
ви можете, будь ласка, змінити прийняту відповідь?
skolima

1
@skolima погодився, прийнята відповідь (Клейтон) врешті-решт отримає результат, але відповідь
CJM

Відповіді:


18

У студії управління SQL Server ви можете клацнути правою кнопкою миші на базі даних, яку ви хочете копіювати, і виберіть "База даних сценарію як", щоб інструмент створив відповідний файл SQL для копіювання цієї бази даних на іншому сервері. Ви можете повторити цей процес для кожної таблиці, яку ви хочете створити, а потім об'єднати файли в один файл SQL. Не забудьте додати контент-оператор після створення бази даних, але перед створенням будь-якої таблиці.

В останніх версіях SQL Server ви можете отримати це в одному файлі в SSMS.

  1. Клацніть правою кнопкою миші базу даних.
  2. Завдання
  3. Створюйте сценарії

Це запустить майстра, де ви зможете скриптувати всю базу даних або лише частини. Здається, не існує T-SQL способу цього зробити.

Створення скриптів SQL Server


182
Продовжуйте прокручувати ... Метод CJM на 99,99999% краще
ewitkows

Відповіді CJM все ще недостатньо. Після застосування методу CJM слід застосувати також метод Shawna Jacobs.
Анджей Мартина

У будь-якому випадку це зробити, наприклад, стандартний SQL для mysql?
Бенджамін Годакре

378

Незважаючи на те, що відповідь Клейтона потрапить до вас (зрештою), у SQL2005 / 2008 / R2 / 2012 у вас є набагато простіший варіант:

Клацніть правою кнопкою миші на базі даних, виберіть, Tasksа потім Generate Scripts, що запустить майстра сценаріїв. Це дозволяє генерувати єдиний скрипт, який може відтворити повну базу даних, включаючи таблицю / індекси та обмеження / збережені процедури / функції / користувачів / тощо. Існує безліч варіантів, які можна налаштувати для налаштування вихідних даних, але більшість із них пояснюються самостійно.

Якщо ви задоволені параметрами за замовчуванням, ви можете виконати всю роботу за лічені секунди.

Якщо ви хочете відтворити дані в базі даних (як серія ВСТАВКИ), я б також рекомендував пакет інструментів SSMS (Безкоштовно для версії SQL 2008, Платна за версію SQL 2012).


5
Це чудово, я щойно це зробив і заощадив мені тону часу.
Білл Самброн

@CJM Я думаю, що Я ТОЛЬКО люблю тебе! :-P
П'єро Альберто

Я точно виконував ці кроки, але я все одно отримую абсолютно багато помилок, і я не можу їх виправити. Будь-яка допомога?
користувач1789573

Я пропоную вам опублікувати своє власне запитання щодо цього - переконайтеся, що ви розміщуєте інформацію про кроки, які ви зробили та помилки, які ви отримали.
CJM

@ user1789573 - як писала Шавна Джейкобс - SSMS не переймається залежностями (ганьба про SSMS devteam!), тож у вас буде багато помилок "задумом". Слідкуйте за Шваною Джейкобсом, щоб подолати цю слабкість SSMS.
Анджей Мартіна

9

Відмінне пояснення можна знайти тут: Створення сценарію в студії управління SQL Server

Ввічливість Алі Ісса Ось що вам потрібно зробити:

  1. Клацніть правою кнопкою миші базу даних (не таблицю) і виберіть завдання -> створити сценарії
  2. Далі -> виберіть потрібну таблицю / таблиці (з виділення конкретних об'єктів бази даних)
  3. Далі -> клацніть розширені -> типи даних для скрипту = схема та дані

Якщо ви хочете створити сценарій, який просто генерує таблиці (немає даних), ви можете пропустити розширену частину інструкцій!


7

Не впевнений, чому SSMS не враховує порядок виконання, але він просто не відповідає. Це не проблема для невеликих баз даних, але що робити, якщо у вашій базі даних 200 об’єктів? У такому випадку порядок виконання має значення, тому що не дуже просто пройти все це.

Для невпорядкованих сценаріїв, згенерованих SSMS, ви можете перейти наступним чином

a) Виконати скрипт (деякі об’єкти будуть вставлені деякі звичаї, будуть деякі помилки)

b) Видаліть усі об'єкти зі скрипту, які були додані до бази даних

в) Поверніться до а), поки все врешті не буде виконано

Альтернативним варіантом є використання сторонніх інструментів, таких як ApexSQL Script, або будь-яких інших інструментів, вже згаданих у цій темі (пакет інструментів SSMS, Red Gate та інші).

Все це подбає про залежність для вас і заощадить вам ще більше часу.


1

Так, ви можете додати стільки операторів SQL в один сценарій, скільки хочете. Зазначимо лише одне: наказ має значення. Ви не можете ВСТАВИТИ в таблицю, доки не створите її; ви не можете встановити іноземний ключ, поки не буде вставлено основний ключ.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.