在创建新数据库之前更改数据库上下文

sky*_*ky3 4 sql-server t-sql

我在许多示例中注意到,在CREATE DATABASE语句之前,有一部分会更改数据库上下文。

USE master;
GO

CREATE DATABASE Sample;
GO
Run Code Online (Sandbox Code Playgroud)

我想知道为什么会这样,因为无论有没有它,在 SQL Server Management Studio 17 中,数据库都会在它应该在的地方创建。

Aar*_*and 8

通常,这些示例伴随着(或预计将与其他命令一起复制并粘贴到脚本中),例如DROP DATABASE第一个命令(如果您处于要删除的数据库的上下文中,则不会发生这种情况并重新创建)。

有一些命令需要在 中运行master,但不是一吨。这可能只是习惯而不是原因的约定,老实说,它可能是许多错误部署到master而不是用户数据库的根源。我写了一个关于这种情况的提示: