Навіщо використовувати майстер для створення бази даних?


12

У мене коротке запитання, чому я використовую use master;для створення бази даних? Ось приклад з документації Microsoft

USE master ;
GO
CREATE DATABASE Sales
ON
( NAME = Sales_dat,
    FILENAME = 'C:\Program Files\...\saledat.mdf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 )
LOG ON
( NAME = Sales_log,  
    FILENAME = 'C:\Program Files\...\salelog.ldf',
    SIZE = 5MB,
    MAXSIZE = 25MB,
    FILEGROWTH = 5MB ) ;

Відповіді:


22

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

  • Відновити із заміною; або,
  • Видаліть поточну базу даних, а потім:
    • Створити з нуля; або,
    • Створити для вкладення.

За межами створення бази даних існує безліч інших сценаріїв, які також вимагають або (a) не в контексті поточної бази даних, або (b) в контексті masterконкретно (або принаймні не конкретної бази даних), і багато такі речі, якими ви можете займатися під час створення баз даних або навколо них:

  • Встановлення бази даних в інший стан, наприклад single_user
  • Попередження помилок, коли скрипт має USEкоманду, але ця база даних користувача може бути в автономному режимі або іншим чином недоступна
  • Надання дозволів на рівні сервера CREATE DATABASE
  • Надання членства на рівні сервера
  • Позначення модуля як системного об'єкта ( sp_MS_marksystemobject) або як процедура запуску
  • Певні типи сертифікатів, сервісного аудиту та операцій групи доступності

Напевно, багато іншого. USE master;не завжди потрібно, але іноді це є, і не завадить завжди виконувати команди серверного рівня з цієї бази даних.


17

Я вважаю, що це не обов'язкова використання masterбази даних для створення бази даних. Оскільки команда create database повинна бути запущена в контексті бази даних, документація завжди використовує базу даних за замовчуванням, яка є, masterі це системна база даних, яка завжди буде там, незалежно від того, що скрипт не вийде з ладу!


4

Я вважаю, що нам, дуже давно, довелося бути майстром при виконанні команди CREATE DATABASE. Я занадто лінивий, щоб запустити якусь 20-річну версію, щоб перевірити. Тож, мабуть, поєднання цього і що "природно" бути господарем. Як, якщо ви створюєте папку (уявіть, що існує лише один рівень папок), ви, мабуть, почуваєте себе "краще" сказати CD \ спершу (порівнюючи тут root із базовою базою даних).

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