J'ai une petite question, pourquoi dois-je utiliser use master;
pour créer une base de données? Voici le exemple de la documentation 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 ) ;
Ce n'est absolument pas une exigence dans ce cas très spécifique, mais c'est une exigence dans de nombreux autres scénarios. Si vous créez une base de données appelée Sales
et que vous disposez déjà d'une base de données appelée Sales
, vous devrez modifier le contexte de votre base de données avant de:
Il existe de nombreux autres scénarios en dehors de la création de base de données qui nécessitent également (a) de ne pas être dans le contexte de la base de données actuelle, ou (b) d'être dans le contexte de master
spécifiquement (ou du moins pas un - spécifique base de données), et beaucoup de ces choses que vous pouvez faire pendant ou autour de la création de bases de données:
single_user
USE
mais que la base de données utilisateur peut être hors ligne ou autrement inaccessibleCREATE DATABASE
sp_MS_marksystemobject
) ou comme procédure de démarrageProbablement une foule d'autres choses. USE master;
n'est pas toujours nécessaire, mais parfois, et --- blessé pour toujours exécuter les commandes au niveau du serveur à partir de cette base de données.
Je crois que ce n'est pas une exigence que vous devez utiliser la base de données master
pour créer une base de données. Étant donné que la commande create database doit être exécutée dans un contexte de base de données, la documentation utilise toujours une base de données par défaut qui est master
et c'est une base de données système qui sera toujours là, peu importe donc le script n'échoue pas!
Je crois que nous, il y a très très longtemps, avions être en maître lors de l'exécution de la commande CREATE DATABASE. Je suis trop paresseux pour lancer une version vieille de 20 ans pour vérifier. Donc probablement une combinaison de cela et qu'il "semble naturel" d'être maître. Comme si vous voulez créer un dossier (imaginez qu'il n'y a qu'un seul niveau de dossiers), vous vous sentez probablement "mieux" de dire CD\first (en comparant la racine ici avec la base de données master).