布団が俺を呼んでいる

丘山大一のぶろぐ

PowerShell Invoke-Sqlcmd で SQLServerの名前付インスタンスにアクセス

地味~に苦戦。
こことか見ながら。
上記サイト通りの「read-host 」を実行すると、パスワード入力が求められるようになります。
今回は入力を求められないようにしました。

$Sql = ("select name from sys.databases;")
$DBLst = Invoke-Sqlcmd -Query $Sql -ServerInstance "localhost\名前付インスタンス" –Username "sa" –Password "パスワード"

取得した結果は$DBLstに入っています。
アクセスする時はこんな感じで。
foreach($db in $DBLst){
    Write-Output $db['name']
}

初めのうちは、PowerShell がオブジェクトで値をとってくる、ということのメリットがよく分かりませんでしたが、段々と便利、と思えるようになってきました。


動くサンプルで学べる Windows PowerShell コマンド&スクリプティングガイド PowerShell 4.0対応

新品価格
¥3,218から
(2015/10/31 18:28時点)

コメントを書く

布団が俺を呼んでいる | PowerShell Invoke-Sqlcmd で SQLServer にアクセスした後にセッションが残っている?

布団が俺を呼んでいる

丘山大一のぶろぐ

PowerShell Invoke-Sqlcmd で SQLServer にアクセスした後にセッションが残っている?

セッションかどうかわかりませんが、何か掴んでいるんだろうなあ、と思いつつも未調査。
環境をパッと作れなかったので……。
ただの備忘記事ですね。
失敗したのは、下記のような作業。

①Invoke-Sqlcmd データベースにアクセス
②とってきたデータを元に処理
③バッチファイル経由でデータベースをDrop
 →タイムアウト

下記のようにしたら通るようになった。
超ムリヤリな方法。
①Invoke-Sqlcmd データベースにアクセス
②とってきたデータを元に処理
Invoke-Sqlcmd マスターデータベースにアクセス
④バッチファイル経由でデータベースをDrop

これはダメな対応ですな……。



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

新品価格
¥3,002から
(2015/10/3 12:43時点)

コメントを書く