短い質問があります。なぜuse master;
データベースを作成するには?これは、Microsoftのドキュメントの example です。
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 ) ;
これは、この非常に特殊なケースでは絶対に必須ではありませんが、他の多くのシナリオでは必須です。 Sales
というデータベースを作成していて、Sales
というデータベースを持っている場合は、次のことを行う前にデータベースコンテキストを変更する必要があります。
データベース作成以外にも、(a)現在のデータベースのコンテキスト内にない、または(b)master
のコンテキスト内にある(または少なくとも- 特定のデータベース)、およびデータベースの作成中または作成中に行う可能性があるこれらの多くのこと:
single_user
などの別の状態に設定するUSE
コマンドが含まれているが、そのユーザーデータベースがオフラインであるかアクセスできない場合のエラーの防止CREATE DATABASE
のようなサーバーレベルのアクセス許可を付与するsp_MS_marksystemobject
)またはスタートアッププロシージャとしてマークするおそらく他にもたくさんあります。 USE master;
は常に必要なわけではありませんが、必要な場合もあり、そのデータベースからサーバーレベルのコマンドを常に実行する必要はありませんhurt。
master
データベースを使用してデータベースを作成する必要はありません。 create databaseコマンドはデータベースコンテキストで実行する必要があるため、ドキュメンテーションは常にmaster
であるデフォルトデータベースを使用します。これはシステムデータベースであり、常に存在するため、スクリプトは失敗しません。
私たちは、非常に昔に、CREATE DATABASEコマンドを実行するときにhadがマスターになると信じています。 20年前のバージョンを起動して確認するのが面倒です。おそらく、それとマスターになることは「自然に感じる」ことの組み合わせでしょう。フォルダーを作成する場合(フォルダーのレベルが1つしかないことを想像してください)のように、最初にCD \と言う方がいいと思います(ルートをマスターデータベースと比較して)。