0
0

More than 3 years have passed since last update.

[Microsoft] CLIから始めるSQL Server

Posted at

これはなに?

docker pullしてrunしたはいいけれど、SQL Server Management Studio (通称SSMS)がないゆえに、CLIからSQL Serverを使うことになった男のメモです。

接続

sqlcmd -H ホスト名 -U ログインID -P パスワード

データベースを指定する場合は-d データベース名をつける

例)

sqlcmd -H localhost -U sa -P password2020! -d mydb

SQLファイルを読み込み

sqlcmd -H ホスト名 -U ログインID -P パスワード -i ファイル名

ファイルがいくつもある場合は、こんな感じでどうでしょうか。bash/zsh使いのひと用です。

for a in *.sql; do
  sqlcmd -H ホスト名 -U ログインID -P パスワード -i "$a"
done

xargsのほうがいいかもしれません。

ls -1 *.sql | xargs -I% sqlcmd -H ホスト名 -U ログインID -P パスワード -i %

ファイル名にバージョン番号がついている(例えば、migration-1.0.0.sqlとか)場合は、sort --version-sortで並べ直すと幸せになれます。

(おまけ) Dockerから始めるSQL Server

Macのひとは、Docker Desktopをインストールします。

Docker hubを参照して、好みのバージョンのSQL Serverをpullします。

下記は2017を落とす場合です。

docker pull mcr.microsoft.com/mssql/server:2017-latest

コンテナを起動します。
mssqlという名前をつけました。
カレントディレクトリを/mntにマウントして、コンテナ内から見えるようにしました。

docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=password2020!' -p 1433:1433 --name mssql -v "$PWD:/mnt" -d mcr.microsoft.com/mssql/server:2017-latest

sqlcmdコマンドはこのように実行します。
作業ディレクトリを/mntにしています。

docker exec -it -w /mnt mssql /opt/mssql-tools/bin/sqlcmd

(なんでPATH通ってないんや。。。)

(おまけその2) SQLから始めるSQL Serverデータベース

データベースを作ったり、ユーザーを作ったりするSQLは別記事に書きました。

[Microsoft] SQLから始めるSQL Serverデータベース

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0