***** データの1行目を表示 ***** 1行目のID :00001 1行目のNAME :りんご 1行目のPRICE:100 ***** データを全件ループして表示 ***** ID:00001、名前:りんご、価格:100 ID:00002、名前:みかん、価格:200 ID:00003、名前:ぶどう、価格:300 ID:00004、名前:いちご、価格:400 ID:00005、名前:きうい、価格:500
SQL Server に接続してテーブルの内容を SELECT する方法
スポンサーリンク
SQL Server に接続してテーブルの内容を SELECT する方法を説明するために事前準備としてデータベース、テーブルとテストデータを用意し、その後にサンプルコードを提示します。
事前準備
最初にサンプルコードを実行する為の「テスト」という名前のデータベースを作成してください。その後、以下の SQL を実行してテスト用のテーブルとテストデータを準備します。
テスト用テーブル作成用SQL | |
1 2 3 4 5 | CREATE TABLE dbo.ITEM_LIST( ID varchar(10) NOT NULL, NAME varchar(100) NOT NULL, PRICE int NOT NULL ) |
テーブルができたら、以下の SQL を実行してテストデータを登録してください。
テストデータ登録用SQL | |
1 2 3 4 5 6 | INSERT INTO dbo.ITEM_LIST VALUES ('00001','りんご',100) , ('00002','みかん',200) , ('00003','ぶどう',300) , ('00004','いちご',400) , ('00005','きうい',500); |
SQL Server で SELECT するサンプルコード(Windows認証で接続)
以下のサンプルコードでは、 Windows 認証で SQL Server に接続した後 SELECT 文でデータ抽出を行い、抽出した内容を表示しています。
PowerShell(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | [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]$strSQL = ''; [string]$strConnectionString = ''; $strServer = 'localhost'; #サーバーを指定 $strInstance = 'SQLEXPRESS';#インスタンスを指定 $strDatabase = 'テスト'; #データベースを指定 #実行するSQL $strSQL = 'SELECT * FROM dbo.ITEM_LIST ORDER BY ID;'; #接続文字列を作成 #windows認証を使用する場合、Integrated Security=True にする。 $strConnectionString = @" Data Source=$strServer\$strInstance; Initial Catalog=$strDatabase; Integrated Security=True; "@ $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 '***** データの1行目を表示 *****'; if($objTable.Rows.Count -gt 0){ Write-Host ('1行目のID :' + $objTable.Rows[0].Item('ID')); Write-Host ('1行目のNAME :' + $objTable.Rows[0].Item('NAME')); Write-Host ('1行目のPRICE:' + $objTable.Rows[0].Item('PRICE')); }else{ Write-Host 'データはありません。'; } Write-Host '***** データを全件ループして表示 *****'; foreach($objRow in $objTable.Rows){ Write-Host ('ID:' + $objRow.Item('ID') + ` '、名前:' + $objRow.Item('NAME') + ` '、価格:' + $objRow.Item('PRICE')); } #各種リソースの破棄 $objConnection.Close(); $objConnection.Dispose(); $objCommand.Dispose(); $objDataset.Dispose(); $objAdapter.Dispose(); |
実行結果は次の通りです。
SQL Server で SELECT するサンプルコード(SQL Server認証で接続)
以下のサンプルコードでは、 SQL Server 認証で SQL Server に接続した後 SELECT 文でデータ抽出を行い、抽出した内容を表示しています。
PowerShell(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | [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'; #サーバーを指定 $strInstance = 'SQLEXPRESS';#インスタンスを指定 $strDatabase = 'テスト'; #データベースを指定 $strUserId = 'sa'; #ユーザーIDを指定 $strPassword = 'password'; #パスワードを指定 #実行するSQL $strSQL = 'SELECT * FROM dbo.ITEM_LIST ORDER BY ID;'; #接続文字列を作成 #SQL Server 認証をする場合はユーザーIDとパスワードの記述が必要 $strConnectionString = @" Data Source=$strServer\$strInstance; 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 '***** データの1行目を表示 *****'; if($objTable.Rows.Count -gt 0){ Write-Host ('1行目のID :' + $objTable.Rows[0].Item('ID')); Write-Host ('1行目のNAME :' + $objTable.Rows[0].Item('NAME')); Write-Host ('1行目のPRICE:' + $objTable.Rows[0].Item('PRICE')); }else{ Write-Host 'データはありません。'; } Write-Host '***** データを全件ループして表示 *****'; foreach($objRow in $objTable.Rows){ Write-Host ('ID:' + $objRow.Item('ID') + ` '、名前:' + $objRow.Item('NAME') + ` '、価格:' + $objRow.Item('PRICE')); } #各種リソースの破棄 $objConnection.Close(); $objConnection.Dispose(); $objCommand.Dispose(); $objDataset.Dispose(); $objAdapter.Dispose(); |
実行結果は次の通りです。
***** データの1行目を表示 ***** 1行目のID :00001 1行目のNAME :りんご 1行目のPRICE:100 ***** データを全件ループして表示 ***** ID:00001、名前:りんご、価格:100 ID:00002、名前:みかん、価格:200 ID:00003、名前:ぶどう、価格:300 ID:00004、名前:いちご、価格:400 ID:00005、名前:きうい、価格:500
スポンサーリンク
- PowerShell
- セキュア文字列を復号して平文にする
- if で条件分岐する
- バージョンを確認する方法
- ユーザーの入力を受け付けて、入力内容を変数に入れて使用する方法
- yyyymmdd 形式の文字列で現在日付を取得する方法
- 処理を途中で終了する方法
- Excel のファイルを新規作成する方法
- 使用可能なコマンドレット一覧を確認する方法
- 実行ポリシー(ExecutionPolicy)変更時にエラーが出た場合の対応方法
- 実行ポリシー(Execution Policy)を確認・変更する方法
- SQL Server に接続してテーブルの内容を SELECT する方法
- ソースコードの式の途中で改行する方法
- 呼び出し元のバッチに戻り値を返す方法
- v2.0 で使用可能なコマンドレット一覧
- 比較演算子一覧・サンプルコードあり
- 論理演算子一覧・サンプルコードあり
- ループを途中で抜ける方法
- テキストファイルの改行を全て削除する方法
- %{}の意味
- 実行中のスクリプトのファイル名を取得する方法
- 変数に NULL を代入する方法
- 変数の値が NULL かを判定する方法
- クラスを別ファイルに定義して読み込む方法
- FTP でファイルをアップロードする方法
- FTP で指定したディレクトリのファイルの一覧を取得する方法
- 文字列を日時型(DateTime)に変換する方法
- Write-Host 時に改行しない方法・途中で改行する方法
- 年度を取得する方法
- 端数を四捨五入する方法
- 端数を切り捨てる方法
- Excel の RoundDown と同じ方法で端数を切り捨てる方法
- Excel の RoundUp と同じ方法で端数を切り上げる方法
- 実行中に変数の中身を確認する方法
- 2個の日付の差の日数を計算する方法
- コメントの書き方
- 翌月、前月、Nヶ月後、Nヶ月前を取得する方法
- バッチファイル(*.bat)からパワーシェルファイル(*.ps1)を実行する方法
- プログラムを秒・ミリ秒を指定して一時停止する方法
- 一時的に実行ポリシー(Execution Policy)を変更する方法
- ファイル・フォルダ
- 空のファイルやフォルダを新規作成する方法
- ファイルやフォルダが存在するかを確認する方法
- Export-CSV の文字化け対策
- フォルダを削除する方法
- ファイルを削除する方法
- カレントフォルダや一階層上のパスを取得する方法
- ファイルの内容をクリアする方法
- フォルダを中身を含めてコピーする方法
- 親フォルダの絶対パスを取得する方法
- ファイルを移動する方法
- フォルダ内のファイル一覧を取得し、全てのファイルを処理する方法
- ファイルとフォルダのどちらかを判定する方法
- パスの文字列から拡張子やファイル名を取り出す方法
- 配列
- 配列の要素数を確認する方法
- 連想配列(ハッシュ)を使用する
- 連想配列(ハッシュ)のキーの一覧を取得する方法
- 配列内の値を検索する方法
- 配列をソートする(昇順・降順)
- 配列内の重複した値を削除する方法
- 配列の要素の値を連結して一つの文字列にする方法
- 変数が配列かを調べる方法
- 配列に要素を追加する方法
- 空の配列を作成する方法
- for で配列の全ての要素を処理する方法
- foreach で配列の全ての要素を処理する方法
- 空の連想配列(ハッシュ)を作成する方法
- 連想配列(ハッシュ)に指定したキーが含まれるかを確認する方法
- 連想配列(ハッシュ)に指定した値が含まれるかを確認する方法
- foreach で連想配列(ハッシュ)の全ての要素を処理する方法
- 連想配列(ハッシュ)をキーや値で並び替える方法(連想配列のソート)
- 配列に指定した値が含まれるかを確認する方法
- 配列の先頭の要素を削除する方法
- 文字列
- 文字列を検索し最初に一致した場所を取得する方法
- 文字列を検索し最後に一致した場所を取得する方法
- 文字列を区切り文字で分割して配列にする方法
- 文字列の文字数をカウントする方法
- 文字列のバイト数をカウントする方法
- 文字列の中で変数を展開する方法
- 大文字・小文字を区別して文字列の一致を確認する方法
- 英語の大文字・小文字を切り替える方法
- 文字列を置換する方法
- 左側をゼロ埋めして固定長の文字列にする方法
- 文字列が空文字や NULL であるかを判定する方法
- 文字列の右側からN文字取り出す方法
- 文字列の左側からN文字取り出す方法
- 文字列の一部を取り出す方法
- 文字列の両端の全角スペース/半角スペースを削除する
- ヒアドキュメントを使って複数行を 1 つの文字列にする
- 文字列が特定の文字列で始まるかを調べる
- タブや改行を文字列値に含める方法
- バッククオテーション ( ` ) を文字列値に含める方法
- シングルクオテーション ( ' ) を文字列値に含める方法
- ダブルクオテーション ( " ) を文字列値に含める方法