【SQL Server】Power Shellから.NETを使用して、SQLを実行する

この記事では
 ・Power Shellから
 ・.NETを使用して
 ・SQL(SELECT文)を実行
するサンプルプログラムを記載します!

.NETを使用するため、invoke-sqlCmd
使用できない環境(SQL Serverが未インストール)でも
SQL Serverへ接続できます!

PR

サンプルプログラムの概要

テーブル「employee」に対し、SELECT文を実行します。

テーブル「employee」の内容
テーブル「employee」の内容
PR

サンプルプログラム

ファイル名「sample.ps1」に以下のコードを記述します。

ここでは例として「SQL Server認証」でSQL Serverへ接続します。

$connStr = New-Object -TypeName System.Data.SqlClient.SqlConnectionStringBuilder

# サーバー名(サーバーのPC名\インスタンス名)
$connStr['Data Source'] = "localhost\SQLEXPRESS"
# データベース名
$connStr['Initial Catalog'] = "sampleDB"
# ユーザー名
$connStr['user id'] = "XXXXX"
# パスワード
$connStr['password'] = "XXXXX"

# Windows認証で接続
# $connStr['Integrated Security'] = "TRUE"

# 実行するSQL文(SELECT文)
$sql = "SELECT * FROM employee"

# SELECT結果を格納するDataTableを定義
$dt = New-Object System.Data.DataTable

# SQLConnectionとSQLCommandを定義
$conn = New-Object System.Data.SQLClient.SQLConnection($connStr)
$cmd = New-Object System.Data.SQLClient.SQLCommand($sql, $conn)

# 接続
$conn.Open()

# SQL文(SELECT文)を実行し結果をDataTableへ格納
$dt.Load($cmd.ExecuteReader())

# 切断
$conn.Close()

# DataTableの内容をコンソールに表示
$dt

「System.Data.SqlClient」配下のクラスを使用して、SQL Serverへ接続します。
※SqlConnectionStringBuilderクラス、SQLConnectionクラス、SQLCommandクラス

SELECT文の結果は「System.Data.DataTable」クラスの変数へ格納します。

「SQL Server認証」でなく「Windows認証」で接続する場合は、13行目のコメントアウトを解除してください。
※「Windows認証」の場合は「ユーザー名(8行目)」と「パスワード(10行目)」は不要です。

PR

実行結果

Power Shellから.NETを使用して、SQL ServerへSQLを実行できました。

実行結果
実行結果
PR

参考①

.NET ではなく、invoke-sqlCmdを使用してSQL ServerへSQLを実行することもできます。
※invoke-sqlCmdを使用した方がシンプルです。

詳細は以下の記事をご確認ください。

PR

参考②

Power Shellのノウハウサイトも運営しています。
合わせてご確認ください!

タイトルとURLをコピーしました