読者です 読者をやめる 読者になる 読者になる

PowerShellからSQLServerへ接続

【改訂新版】 Windows PowerShell ポケットリファレンス

【改訂新版】 Windows PowerShell ポケットリファレンス

Windows PowerShellクックブック

Windows PowerShellクックブック

概要

PowerShellからSQLServerへ接続、データを取得します

SQLServerへ接続

write "start script"

[System.Data.SqlClient.SqlConnection]$objConnection = $null;
[System.Data.SqlClient.SqlCommand]$objCommand       = $null;
[System.Data.SqlClient.SqlDataAdapter]$objAdapter   = $null;
[System.Data.DataSet]$objDataset = $null;
[System.Data.DataTable]$objTable = $null;
[string]$strServer = '';
[string]$strInstance = ''; 
[string]$strDatabase = '';
[string]$strUserId   = '';
[string]$strPassword = '';
[string]$strSQL = '';
[string]$strConnectionString  = '';
 
$strServer   = 'localhost'; #サーバーを指定
$strDatabase = 'pubs';    #データベースを指定
$strUserId   = 'sa';    #ユーザーIDを指定
$strPassword = 'xxxxxxx';  #パスワードを指定
 
#実行するSQL
$strSQL = 'select * from dbo.stores order by stor_id;';
 
#接続文字列を作成
$strConnectionString = @"
Data Source=$strServer;
Initial Catalog=$strDatabase;
User ID=$strUserId;
Password=$strPassword;
"@ 
 
$objConnection = New-Object -TypeName System.Data.SqlClient.SqlConnection;
$objConnection.ConnectionString = $strConnectionString;
$objCommand = $objConnection.CreateCommand();
$objCommand.CommandText = $strSQL;
 
$objAdapter = New-Object -TypeName System.Data.SqlClient.SqlDataAdapter $objCommand;
$objDataset = New-Object -TypeName System.Data.DataSet;
 
#データセットにCommandTextの実行結果をセット
#戻り値の数値は不要の為、[void]をつけている。
[void]$objAdapter.Fill($objDataset);
 
#DataSetにセットされた1個目のテーブルを取り出す
$objTable = $objDataset.Tables[0];

 
Write-Host '***** データを表示 *****';
foreach($objRow in $objTable.Rows){
  Write-Host ('id:'       + $objRow.Item('stor_id') + `
              '、name:'    + $objRow.Item('stor_name') + `
              '、address:' + $objRow.Item('stor_address') + `
              '、city:'    + $objRow.Item('city'))
              ;
} 
 
#各種リソースの破棄
$objConnection.Close();
$objConnection.Dispose();
$objCommand.Dispose();
$objDataset.Dispose();
$objAdapter.Dispose(); 

write "end script"