コマンドラインでSQL Serverを操作: osql, isql, sqlcmd の詳細解説
SQL Server コマンドラインツール: osql, isql, sqlcmd の違い
osql、isql、sqlcmd は、Microsoft SQL Server にコマンドラインからアクセスするためのツールです。それぞれ異なる機能と歴史を持ち、用途によって使い分けられます。
各ツールの特徴
osql:
- 最も古いツール
- シンプルなコマンドラインインターフェース
- クエリ実行、結果表示、接続設定など基本的な機能のみ
- 古いバージョンの SQL Server にのみ対応
- osql より機能が豊富
- 変数、ループ、条件分岐などのプログラミング機能
- スクリプトファイル実行
- 複数のデータベースサーバーへの接続
sqlcmd:
- 最新かつ最も機能豊富なツール
- osql と isql の機能を統合
- Tab キーによる補完機能
- 出力形式の制御
- バッチ処理
比較表
機能 | osql | isql | sqlcmd |
---|---|---|---|
インターフェース | シンプル | 標準 | 拡張 |
プログラミング機能 | なし | あり | あり |
スクリプト実行 | なし | あり | あり |
接続 | 1 サーバー | 複数サーバー | 複数サーバー |
バージョン | 古い | 古い | 全て |
- 基本的な操作: osql
- スクリプト実行: isql または sqlcmd
- 最新の機能: sqlcmd
補足
- SQL Server Management Studio (SSMS) は、GUI で SQL Server を管理するツール
- 各ツールには詳細なオプションがあり、コマンドラインヘルプで確認できる
osql -S localhost -U sa -P MyPassword
SELECT * FROM AdventureWorks2019.Person.Contact
EXIT
isql -S localhost -U sa -P MyPassword
EXEC sp_help 'AdventureWorks2019.Person.Contact'
GO
SELECT * FROM AdventureWorks2019.Person.Contact
GO
EXIT
sqlcmd -S localhost -U sa -P MyPassword
SELECT * FROM AdventureWorks2019.Person.Contact;
SET NOCOUNT ON;
GO
EXEC sp_help 'AdventureWorks2019.Person.Contact';
GO
EXIT
- 接続設定:
-S
オプションでサーバー名、-U
オプションでユーザー名、-P
オプションでパスワードを指定 - クエリ実行:
SELECT
ステートメントでクエリを実行 - スクリプト実行:
GO
ステートメントでスクリプトを実行 - 終了:
EXIT
コマンドでツールを終了
その他のコマンドラインツール
- bcp: データのインポート/エクスポート
- sqlps: PowerShell 用の SQL Server モジュール
- sqlwb: SQL Server Management Studio のコマンドライン版
- SQL Server Management Studio (SSMS): データベースの管理、クエリ実行、スクリプト実行など
- Azure Data Studio: クラウドとオンプレミスの SQL Server を管理
sql-server command-line