0. インストール要件
OS AlmaLinux release 9.4 (Seafoam Ocelot) プログラム sqlcmd Version 17.10.0001.1
1. リポジトリの追加
Microsoft の公式ページに従ってリポジトリを追加する。
$ su
# curl -o /etc/yum.repos.d/mssql-release.repo https://packages.microsoft.com/config/rhel/9/prod.repo
なぜか /opt にインストールされる。
# dnf install mssql-tools
# tree /opt# exitbcp はデータをエクスポート / インポートするためのコマンド。
/opt ├- microsoft │ └- msodbcsql17 │ ├- etc │ │ └- odbcinst.ini │ ├- include │ │ └- msodbcsql.h │ ├- lib64 │ │ └- libmsodbcsql-17.10.so.6.1 │ └- share │ └- resources │ └- en_US │ └- msodbcsqlr17.rll └- mssql-tools ├- bin │ ├- bcp │ └- sqlcmd ← これを使う └- share └- resources └- en_US ├- BatchParserGrammar.dfa ├- BatchParserGrammar.llr ├- SQLCMD.rll └- bcp.rll 13 directories, 10 files
$
3. 使い方
3-1. 標準的なディレクトリでないため、PATH を通すか Alias を作っておく。
$ alias sqlcmd='/opt/mssql-tools/bin/sqlcmd' # ~/.bashrc に記述すると吉。3-2. sqlcmd コマンドの使い方
$ sqlcmd -S ホスト名,ポート番号 -U ユーザ名 -P "パスワード" -d インスタンス名 -Q "SQLコマンド"
実行例1:$ sqlcmd -?
$ sqlcmd -S sqlserver.example.jp,1433 -U UserName -P "password" -Q "SELECT @@version"
----------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------- Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64) Sep 24 2019 13:48:23 Copyright (C) 2019 Microsoft Corporation Developer Edition (64-bit) on Windows Server 2019 Standard 10.0 <X64> (Build 17763: ) (Hypervisor) (1 rows affected)
実行例2:
$ sqlcmd -S sqlserver.example.jp,1433 -U UserName -P "password" -d TestSchema -Q "SELECT * FROM dbo.tableFruit"
これもただの例。テーブルの作り方はここでは論じない。
Seq Name Price Tax ----------- -------------------- ---------- ----------- 1 Apple 300 10 2 Orange 500 10 (2 rows affected)
上記実行例で使用したのは紫色に着色したオプション。
Microsoft (R) SQL Server Command Line Tool Version 17.10.0001.1 Linux Copyright (C) 2017 Microsoft Corporation. All rights reserved. usage: sqlcmd [-U login id] [-P password] [-S server or Dsn if -D is provided] [-H hostname] [-E trusted connection] [-N Encrypt Connection][-C Trust Server Certificate] [-d use database name] [-l login timeout] [-t query timeout] [-h headers] [-s colseparator] [-w screen width] [-a packetsize] [-e echo input] [-I Enable Quoted Identifiers] [-c cmdend] [-q "cmdline query"] [-Q "cmdline query" and exit] [-m errorlevel] [-V severitylevel] [-W remove trailing spaces] [-u unicode output] [-r[0|1] msgs to stderr] [-i inputfile] [-o outputfile] [-k[1|2] remove[replace] control characters] [-y variable length type display width] [-Y fixed length type display width] [-p[1] print statistics[colon format]] [-R use client regional setting] [-K application intent] [-M multisubnet failover] [-b On error batch abort] [-D Dsn flag, indicate -S is Dsn] [-X[1] disable commands, startup script, environment variables [and exit]] [-x disable variable substitution] [-g enable column encryption] [-G use Azure Active Directory for authentication] [-? show syntax summary]