SQL Server Local DBで遊び用のデータベースを作った

# はじめに
データベースを扱うアプリが欲しいなぁと思い至ったので、SQL Server Local DBを試してみることにした。


# 1.SQL Server Express Local DBのインストール
Visual Studioの個別コンポーネントからインストールした。
※個別コンポーネントをインストールしたらOS再起動。じゃないとSSMSのインストール時に
致命的なエラーが起きる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184939/29cb01d0-d48d-dd05-5770-59ca9e473d5e.png)

# 2.管理ツールの導入
SQL Server Management Studioが使えるらしいのでSQL Server Management Studio 18.8をインストール。

1. インストーラの入手
https://docs.microsoft.com/ja-jp/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15 から入手。
サイトの中部にある"使用できる言語"の 日本語 をクリックしないと日本語版がDLできないので注意。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184939/1d600a90-4bb2-78f6-405e-b8199dad7d91.png)

2. [Install]ボタンをクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184939/2fae4b0a-eece-069a-bf7e-6113673e26ec.png)

3. インストールが開始される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184939/61ffbf0b-e603-b663-b931-58dd449d2b10.png)

4. インストールが完了したら、[閉じる]をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184939/545cec07-7d68-6803-1657-60df96f36c25.png)

# 3.お遊び用のインスタンスを作る
お遊び用のインスタンスを作る。今回はWindows PowerShellを使用。
※インスタンス名は後から変えられない為、注意が必要。

```powershell:
PS C:\Users\elu_jaune> sqllocaldb.exe create goodneighbor
LocalDB インスタンス "goodneighbor" はバージョン 13.1.4001.0 で作成されました。
```

インスタンスが作られたことを確認する。

```powershell:
PS C:\Users\elu_jaune> sqllocaldb.exe info goodneighbor
名前:               goodneighbor
バージョン:         13.1.4001.0
共有名:             
所有者:             MYCOMPUTER\elu_jaune
自動作成:        いいえ
状態:              停止
前回の開始時刻:    2021/01/08 0:29:53
インスタンス パイプ名: 
```

どうやらSQL Server Express LocalDB はサービス管理ツールではなくコマンドラインからインスタンスを起動しないといけないらしい。

```powershell:
PS C:\Users\elu_jaune> sqllocaldb.exe start goodneighbor
LocalDB インスタンス "goodneighbor" が開始されました。
```

infoオプションでgoodneighborの状態を調べてみる。

```powershell:
PS C:\Users\elu_jaune> sqllocaldb.exe start goodneighbor
LocalDB インスタンス "goodneighbor" が開始されました。


PS C:\Users\elu_jaune> sqllocaldb.exe info dddb
名前:               goodneighbor
バージョン:         13.1.4001.0
共有名:             
所有者:             MYCOMPUTER\elu_jaune
自動作成:        いいえ
状態:              実行中
前回の開始時刻:    2021/01/08 0:56:24
インスタンス パイプ名: np:\\.\pipe\LOCALDB#87EE20C0\tsql\query
```

# インスタンスにDBを作る
1. SQL Server Management Stuioを実行。

2. サーバー名に[(localdb)\インスタンス名]を入力し、[接続]ボタンをクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184939/b7f3482e-95c3-63ca-f5b6-d3e8139f2a11.png)

3. インスタンスに接続できたことを確認。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184939/26a5438a-58f8-f152-422e-abc82900bdea.png)

4. [データベース]を右クリックし、[新しいデータベース]を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184939/375d1291-fe90-bc49-75ed-f3640a436a93.png)

5. [データベース名]に作成したデータベース名を入力し、[OK]をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184939/79f9c03e-d756-af6e-1e85-adc3e21ad3ea.png)

6. データベースが作成されたことを確認。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184939/fce719c1-a7d4-0ffc-35dc-154418b6e7fe.png)


# そのほか
インスタンスの作成先 C:\Users\<username>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances

# 参考
https://qiita.com/miyamiya/items/1e8d847f225b3dc0281a
https://fnya.cocolog-nifty.com/blog/2012/11/sql-server-2012.html
https://docs.microsoft.com/ja-jp/sql/relational-databases/express-localdb-instance-apis/command-line-management-tool-sqllocaldb-exe?view=sql-server-ver15