SQL Serverデータベース:作成、変更、削除、復元

⚡ スマートサマリー

SQL Server データベースは、テーブル、ビュー、ストアドプロシージャ、その他のオブジェクトを格納するコンテナです。作成、変更、削除pingまた、データベースの復元は、SQL Server Management Studio または Transact-SQL ステートメントを使用して行うことができます。

  • 🗄️ データベース: SQL Serverデータベースは、テーブル、ビュー、プロシージャ、関数を、整理され相互にリンクされた単一のコンテナに格納します。
  • 🧩 システム対ユーザー: システムデータベース(master、msdb、model、tempdb、resource)は自動的にインストールされます。ユーザーデータベースはユーザーが作成します。
  • 🖱️ 作成: オブジェクトエクスプローラーの「新しいデータベース」ダイアログ、またはCREATE DATABASEステートメントを使用してデータベースを追加します。
  • 会<XNUMXxEXNUMX><XNUMXxXNUMXF>️️<XNUMXxXNUMXF>️️ 年齢: ALTER DATABASEコマンドまたは[名前の変更]メニューを使用して、データベースの名前を変更したり、ファイルやオプションを変更したりできます。
  • 🗑️ 落とす: ユーザーデータベースは、DROP DATABASEコマンドまたは削除オプションを使用して削除してください。システムデータベースは削除できません。
  • 💾 リストア: RESTORE DATABASEコマンドを使用して、.bakバックアップファイルからデータベースを再構築します。

SQL Serverデータベースの作成、変更、削除、および復元

データベースとは何ですか?

データベースとは、次のようなオブジェクトの集合です。 テーブルビュー、ストアドプロシージャ、トリガー、関数。 SQLサーバーデータベースとは、これら関連するすべてのオブジェクトが整理されて格納され、相互にリンクされる場所である。

実生活からいくつか例を挙げてみましょう。

  • 本棚は本が置かれている場所です。
  • 家とは、私たちが暮らす場所です。
  • 駐車場とは、車両が駐車される場所であり、そのような例は数え切れないほどある。

同様に、データベースは、すべてのテーブル、ビュー、ストアドプロシージャを格納する一種の場所です。技術的には、データベースはデータを容易にアクセスおよび取得できるように整理された方法でデータを格納します。SQL Serverには、2種類のデータベースがあります。

  • システムデータベース: これらはSQL Serverのインストール時に自動的に作成されます。サーバー上で重要な役割を果たし、特にデータベースオブジェクトが正しく動作することを保証します。SQL Serverのシステムデータベースの例としては、master、msdb、model、tempdb、resourceなどがあります。
  • ユーザーデータベース: これらは、データベースを作成する権限を与えられた、あなたのようなデータベースユーザーによって作成されます。

データベース作成のルール

まず、新しいデータベースを作成するための基本的なルールを知っておく必要があります。

  • データベース名は SQL Server のインスタンス内で一意である必要があります。
  • データベース名には最大 128 文字を使用できます。
  • CREATE DATABASE文は、自動コミットモードで実行する必要があります。

下の図は、SQL Serverでデータベースを作成する際に利用できる2つの方法を示しています。

SQL Serverデータベースを作成する2つの方法:Management StudioとTransact-SQL

SQL Serverでデータベースを作成する方法は2つあります。

SQL Server Management Studio でデータベースを作成する方法

SQL Server Management Studioでデータベースを作成する手順を段階的に説明します。

ステップ1) オブジェクトエクスプローラーウィンドウで「データベース」を右クリックし、「新しいデータベース」を選択します。

以下に、右クリックメニューの「新規データベース」オプションを示します。

オブジェクトエクスプローラーで「データベース」ノードを右クリックし、「新規データベース」を選択します。

ステップ2) 「新規データベース」画面が表示されます。「データベース名」を入力してください。「論理名」列には、以下の値が自動的に入力されます。

  • Edu – ファイルタイプ: 行データ、ファイルグループ: PRIMARY
  • Edu_log – ファイルタイプ: LOG、ファイルグループ: '該当なし'

以下に、データベース名とその論理ファイルが表示された「新規データベース」ダイアログを示します。

Eduデータベース名とEduおよびEdu_log論理ファイルを表示する新しいデータベースダイアログ

ここに:

  • A) Edu (ファイルタイプ: 行データ、ファイルグループ: PRIMARY) は .mdf データファイルです。
  • B) Edu_log (ファイルタイプ: LOG、ファイルグループ: '該当なし') は .ldf ログファイルです。

ステップ3) (オプション)より複雑な設定を行うには、「オプション」ページと「ファイルグループ」ページに移動してください。初心者レベルの場合は、「一般」タブからデータベースを作成するだけで十分です。

以下に「オプション」ページと「ファイルグループ」ページを示します。

高度な設定のための新しいデータベースオプションとファイルグループページ

ステップ4) データベースを作成するには、「追加」(OKボタン)をクリックしてください。

作成を確定するボタンが下にハイライト表示されています。

Eduデータベースを作成する新規データベースダイアログのOKボタン

結果: 「Edu」データベースが作成されました。「Edu」データベースを拡張すると、テーブル、ビューなどが含まれます。これらは、新しいテーブルやビューなどを作成するまでは、最初は空の状態です。

オブジェクトエクスプローラーには、空のフォルダーを含む新しく作成されたEduデータベースが表示されています。

ソース クエリを表示します。 新しく作成された「Edu」データベースのソースクエリを表示できます。次の手順で操作してください。データベース名を右クリック > データベースをスクリプト化 > 作成先 > 新しいクエリ エディター ウィンドウ。

スクリプトデータベースを新規クエリエディタウィンドウのコンテキストメニューに作成する

クエリウィンドウ: 生成されたCREATEスクリプトは、以下に示すように新しいクエリウィンドウで開きます。

Edu 用に自動生成された CREATE DATABASE スクリプトを表示するクエリ エディター ウィンドウ

スクリプトを作成します:

USE [master]
GO

CREATE DATABASE [Edu]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'Edu', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
 LOG ON 
( NAME = N'Edu_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )

T-SQL を使用してデータベースを作成する

別の方法としては、T-SQLクエリを作成してデータベースを作成し、それを実行する方法があります。最もシンプルなデータベース作成用のT-SQLクエリを見てみましょう。

構文:

CREATE DATABASE <Database_name>

クエリ:

CREATE DATABASE [Edu_TSQL_file]

以下に示すように、「実行」をクリックしてクエリを実行してください。

SSMSツールバーの「実行」ボタンは、CREATE DATABASEクエリを実行するために使用されます。

結果: SQLオブジェクトエクスプローラーで作成されたEdu_TSQL_fileを確認できます。

オブジェクトエクスプローラーに、Transact-SQLで作成されたEdu_TSQL_fileデータベースの一覧が表示されます。

それでは、.mdf ファイルと .ldf ファイルを指定してデータベースを作成する方法を見ていきましょう。ここでは、クエリの一部としてファイルの場所を明示的に指定できます。

構文:

CREATE DATABASE database_name   
[ CONTAINMENT = { NONE | PARTIAL } ]  
[ ON   
      [ PRIMARY ] <filespec> [ ,...n ]   
      [ , <filegroup> [ ,...n ] ]   
      [ LOG ON <filespec> [ ,...n ] ]   
];

クエリ:

CREATE DATABASE [Edu_TSQL_file]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'Edu_TSQL_file', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu_TSQL_file.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
 LOG ON 
( NAME = N'Edu_TSQL_file_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\Edu_TSQL_file_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )

明示的なデータファイルとログファイルを含むデータベースは、以下に示すようにオブジェクトエクスプローラーに表示されます。

オブジェクトエクスプローラーには、明示的な.mdfファイルと.ldfファイルを使用して作成されたEdu_TSQL_fileデータベースが表示されています。

データベースを変更する方法

CREATE DATABASE クエリと同様に、データベースを変更することもできます。データベース名の変更、ファイルの場所や設定の変更などが可能です。

データベースを変更する際の基本的なルール:

  • ALTER DATABASE ステートメントは、自動コミットモードで実行する必要があります。
  • ALTER DATABASE は、明示的または暗黙的なトランザクションでは許可されません。

SQL Serverでデータベースを変更するには、2つの方法があります。

  • SQL Server Management Studio
  • Transact SQL

SQL Server Management Studio でデータベースを変更する方法

以下は、SQL Server Management Studio でデータベースを変更する手順です。事前に作成したデータベース「Edu」の名前を変更してみましょう。事前に作成した Edu データベースは、オブジェクト エクスプローラーに以下のように表示されます。

オブジェクトエクスプローラのデータベースリストで、事前に作成されたEduデータベースが選択されています。

ステップ1) データベースの名前を変更します。データベース名を右クリックし、「名前の変更」をクリックします。

Eduデータベースを右クリックしてコンテキストメニューを開き、「名前の変更」オプションを選択します。

ステップ2) データベース名が編集可能になります。新しい名前を入力してEnterキーを押してください。

編集可能なEduデータベース名フィールドは、新しい名前を入力する準備ができています。

結果: データベースの名前が「Edu」から「Edu_Alter」に変更されました。

オブジェクトエクスプローラーには、データベース名がEduからEdu_Alterに変更されたことが示されています。

Transact-SQL を使用したデータベースの変更

それでは、T-SQLを使ってデータベースを変更してみましょう。

構文:

ALTER DATABASE <Databse_name>              
MODIFY NAME = <New Name>

クエリ:

ALTER DATABASE Edu_TSQL
MODIFY NAME = Edu_TSQL_Alter;

「実行」をクリックして上記のクエリを実行します。

結果: 以下に示すように、データベースの名前が「Edu_TSQL」から「Edu_TSQL_Alter」に変更されました。

オブジェクトエクスプローラーには、ALTER DATABASEコマンド実行後にデータベース名がEdu_TSQL_Alterに変更されたことが示されています。

一般的な構文: 完全なALTER DATABASE構文は、名前変更、照合順序、ファイルオプション、互換性レベルなど、多くのオプションをサポートしています。

ALTER DATABASE { database_name  | CURRENT }  
{   MODIFY NAME = new_database_name   
  | COLLATE collation_name  
  | <file_and_filegroup_options>  
  | SET <option_spec> [ ,...n ] [ WITH <termination> ] 
  | SET COMPATIBILITY_LEVEL = { 140 | 130 | 120 | 110 | 100 | 90 }   
} ;

注意: 上記の互換性レベルは、以前のリリースを反映したものです。最新バージョンでは、150 (SQL Server 2019)、160 (SQL Server 2022)、および170 (SQL Server 2025) が追加され、さらに以前のいくつかのレベルも引き続きサポートされています。

.mdf/.ldfファイル名の変更

クエリ:

Alter DATABASE Edu_TSQL_Alter;
MODIFY FILE ( NAME = Edu_TSQL, NEWNAME = Edu_TSQL_newName );

名前が変更された論理ファイルは、以下に示すようにデータベースのプロパティに反映されます。

名前が変更された論理ファイル Edu_TSQL_newName を確認するデータベースプロパティ

.mdf/.ldfファイルの場所を変更する

クエリ:

Alter DATABASE Edu_TSQL_Alter;
MODIFY FILE ( NAME = Edu_TSQL_NewName, FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL_MS\MSSQL\DATA\New_File\Edu_TSQL_log.ldf' );

データベースの更新されたファイルパスは以下のとおりです。

新しい.ldfログファイルの場所を示すデータベースファイルページ

データベースの削除

SQL Serverでデータベースを削除(ドロップ)する方法は2つあります。

  • SQL Server Management Studio
  • Transact SQL

SQL Server Management Studio でデータベースを削除する方法

以下は、SQL Server Management Studio でデータベースを削除する手順です。事前に作成したデータベース「Edu_Alter」を削除してみましょう。

ステップ1) データベースを右クリックし、「削除」をクリックしてから「OK」をクリックします。

ドロップ用のオブジェクト削除ダイアログping SSMSのEdu_Alterデータベース

結果: 「Edu_Alter」は「オブジェクトエクスプローラー」データベースリストから削除されます。

Edu_Alterデータベース削除後のオブジェクトエクスプローラーのデータベース一覧

Transact-SQL を使用してデータベースを削除する

事前に作成したデータベース「Edu_TSQL_Alter」を削除してみましょう。

構文:

DROP DATABASE <Databse_name>

クエリ:

USE master;  
GO  
DROP DATABASE Edu_TSQL_Alter;  
GO

「実行」をクリックして上記のクエリを実行します。

結果: 以下に示すように、「オブジェクトエクスプローラー」データベースリストから「Edu_TSQL_Alter」が削除されます。

T-SQLを使用してEdu_TSQL_Alterデータベースを削除した後のオブジェクトエクスプローラーのデータベース一覧

SQL Server でデータベースを復元する

以前にバックアップしたデータベースを復元することで、新しいデータベースを作成できます。これは、次の構文を使用する RESTORE DATABASE コマンドを実行することで実行できます。

restore Database <database name> from disk = '<Backup file location + filename>

クエリは、以前のコマンドと同様に、クエリウィンドウ内で実行する必要があります。例:

restore database Edu from disk = 'C:\Backup\Edu_full_backup.bak'

GUIナビゲーションを使用することもできます。データベースを右クリック > データベースの復元 > デバイス > バックアップファイルをインポート > OKをクリックします。

よくあるご質問

データベースを作成するには、マスターデータベースで CREATE DATABASE、CREATE ANY DATABASE、または ALTER ANY DATABASE 権限が必要です。sysadmin または dbcreator サーバーロールのメンバー、または適切な権限が付与されている必要があります。 loginステートメントを実行できます。

1つのSQL Serverインスタンスには、最大32,767個のデータベースを保持できます。この数値は厳密なアーキテクチャ上の制限であり、実際には、メモリ、ストレージ、および管理上のオーバーヘッドを考慮すると、良好なパフォーマンスを得るためには、はるかに少ない数に抑えることが望ましいです。

いいえ。master、model、msdb、tempdb、resourceなどのシステムデータベースはエンジンに必要なため、削除できません。DROP DATABASEコマンドまたは削除オプションを使用して削除できるのは、ユーザーが作成したユーザーデータベースのみです。

SIZEは初期ファイルサイズを設定し、MAXSIZEはファイルが拡張できる最大サイズを設定し、FILEGROWTHはファイルが拡張されるたびに追加される容量を設定します。これらはデータファイルとログファイルの両方に適用されます。

COMPATIBILITY_LEVEL は、データベースが使用するクエリ処理動作を制御します。現在の値は、140 (SQL Server 2017)、150 (2019)、160 (2022)、および 170 (2025) です。ALTER DATABASE SET COMPATIBILITY_LEVEL コマンドを使用すると、データベースを新しいサーバーに移動することなく、この値を変更できます。

DROP DATABASE コマンドは、データベースとその .mdf ファイルおよび .ldf ファイルを完全に削除します。データベースをオフにするには、LINE ディスク上のファイルはそのまま残し、アクセスのみを停止するため、後で復元することなくオンラインに戻すことができます。

Yes. GitHubコパイロット SSMSまたはエディタ内で、自然言語プロンプトからCREATE DATABASE、ALTER DATABASE、DROP DATABASEステートメントを作成できます。生成されたファイルのパス、サイズ、およびオプションは、実際のサーバーで実行する前に必ず確認してください。

AIと機械学習は、ファイルサイズや拡張設定の推奨、容量予測、構成のずれの検出、リスクの高いDROPまたはALTER操作の警告などによって、プロビジョニングを支援します。これらは、データベース管理者の綿密なレビューに取って代わるものではなく、むしろそれをサポートするものです。