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 avez déjà une base de données appelée Sales
, vous devrez modifier le contexte de votre base de données avant de:
- Restaurer avec remplacer; ou,
- Supprimez la base de données actuelle, puis:
- Créez à partir de zéro; ou,
- Créez pour attacher.
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 une base de données spécifique ), et beaucoup de ces choses que vous pouvez faire pendant ou autour de la création de bases de données:
- Définition d'une base de données dans un état différent, comme
single_user
- Prévention des erreurs lorsqu'un script a une
USE
commande mais que la base de données utilisateur peut être hors ligne ou autrement inaccessible
- Octroi d'autorisations au niveau du serveur comme
CREATE DATABASE
- Octroi de l'appartenance à un rôle au niveau du serveur
- Marquage d'un module comme objet système (
sp_MS_marksystemobject
) ou comme procédure de démarrage
- Certains types d'opérations de certificat, d'audit de serveur et de groupe de disponibilité
Probablement une foule d'autres choses. USE master;
n'est pas toujours nécessaire, mais parfois c'est le cas, et cela ne fait pas de mal d'exécuter toujours des commandes au niveau du serveur à partir de cette base de données.