Microsoft SQL Server 2016 の各種情報を取得する手順について解説します。
検証環境
以下の「Windows Server 2016」と「SQL Server 2016」の日本語環境を利用しました。
コマンドライン(PowerShell)からの SQL Server 接続
コマンドライン(PowerShell)から SQL Server へ接続します。
Windows スタートボタンをクリックし「Windows PowerShell」をクリックします。
■SQL Server 接続のコマンド
PS C:\Users\Administrator> sqlcmd -S EC2AMAZ-UDKT284,1433 -U sa -P PassWord1234 |
■オプション
- -S ← ホスト名
- -U ← SQL Server 認証アカウント
- -P ← アカウントのパスワード
■SQL Server 接続のコマンド(DB を指定する場合)
PS C:\Users\Administrator> sqlcmd -S EC2AMAZ-UDKT284,1433 -U sa -P PassWord1234 -d AdventureWorks2016 |
■オプション
- -S ← ホスト名
- -U ← SQL Server 認証アカウント
- -P ← アカウントのパスワード
- -d ← 接続先の DB
■SQL Server 接続のコマンド(カンマ区切りにして且つ DB を指定する場合)
PS C:\Users\Administrator> sqlcmd -S EC2AMAZ-UDKT284,1433 -U sa -P xxxxxxxxxx -d AdventureWorks2016 -W -s “,” |
■オプション
- -S ← ホスト名
- -U ← SQL Server 認証アカウント
- -P ← アカウントのパスワード
- -d ← 接続先の DB
- -W ← 列から後続の空白を削除
- -s ← 列の区切り文字を指定
データベース一覧を表示する
コマンドラインよりデータベース一覧を表示します。
2> select name from sys.databases; |
現在のデータベースを確認する
現在、どのデータベースに接続しているか確認します。
1> select db_name() as [current database]; |
データベースを変更する(指定する)
データベースを変更します。
1> use AdventureWorks2016 |
テーブル一覧を取得する
テーブル一覧を取得します。
1> select name from sysobjects where xtype = ‘U’; |
表示を見やすくする
表示桁数(折り返し位置)を指定してコマンド結果を見やすく設定します。
PS C:\Users\Administrator> sqlcmd -S EC2AMAZ-UDKT284,1433 -U sa -P Password1234 -w 1000 |
表示を見やすくした状態でテーブル一覧を取得します。
横に広がっていますが、テキストエディタで折り返しなしにすると綺麗に表示されます。
1> select * from sysobjects where xtype = ‘U’; |
SELECT 文の結果をカンマ区切りで表示させて Excel で分析しやすくする
個人的にはこの方法が一番いいかなと思います。
SELECT 文の結果をカンマ区切りで表示させて Excel で分析しやすくする方法です。
sqlcmd コマンドで、-s “,” オプションを付けてデータベースに接続します。
PS C:\Users\Administrator> sqlcmd -S EC2AMAZ-UDKT284,1433 -U sa -P Password1234 -W -s “,” |
以下のようにカンマ区切りで表示されます。
これを Excel ファイルに貼り付けます。
1> exec msdb.dbo.sp_help_job; |
下図のように Excel ファイルで分析が出来るようになります。
-W オプションで空白を削除する
sqlcmd コマンドの場合は、「-W」オプションで空白を削除することができます。
以下の「-W」オプション付きのコマンドでデータベースに接続します。
PS C:\Users\Administrator> sqlcmd -S EC2AMAZ-UDKT284,1433 -U sa -P Password1234 -W |
コマンドを実行します。
横幅の制限があるため折り返されて見にくいですが、空白は削除されています。
1> exec msdb.dbo.sp_help_job; |
SQL Server Management Studio を利用できるなら利用した方がクエリ結果を綺麗に表示できる
SQL 文で何とかクエリ結果を整形するのも限界があります。
そのため、SQL Server Management Studio を利用できるなら、利用した方がクエリ結果を綺麗に表示できます。
【手順】
- SQL Server Management Studio を起動します。
- 「新しいクエリ」ボタンをクリックします。
- 実行したいクエリを入力します。(goも含めます。)
- 「実行」ボタンをクリックします。
- クエリ結果が表示されます。
実行結果を Excel に貼り付けて分析することも簡単です。
クエリ結果を右クリックして「ヘッダー付きでコピー」をクリックします。
下図のように Excel に貼り付けて分析ができます。
ジョブ一覧を表示する
ジョブ一覧です。
横長になり途中で折り返されているため非常に見にくいです。
1> exec msdb.dbo.sp_help_job; |
ストアドプロシージャの情報を出力する
ストアドプロシージャの各種情報を出力する方法です。
ストアドプロシージャの一覧を表示する
ストアドプロシージャの一覧を表示する方法です。
1> SELECT sysobjects.name |
オプション「-s」を追加して、カンマ区切りに変更し Excel に貼り付けて見やすくします。
以下のコマンドでデータベースに接続します。
PS C:\Users\Administrator> sqlcmd -S EC2AMAZ-UDKT284,1433 -U sa -P xxxxxxxxx -d AdventureWorks2016 -W -s “,” |
■オプション
- -S ← ホスト名
- -U ← SQL Server 認証アカウント
- -P ← アカウントのパスワード
- -d ← 接続先の DB
- -W ← 列から後続の空白を削除
- -s ← 列の区切り文字を指定
1> SELECT sysobjects.name |
Excel に貼り付けると下図のような感じでスッキリと一覧を表示できます。
ストアドプロシージャのソースを出力する
ストアドプロシージャのソースを出力します。
exec sp_helptext の次の引数でストアドプロシージャを指定します。
1> exec sp_helptext sp_MScleanupmergepublisher |
【例】
2> use adventureworks2016; |
コメント