色々と方法はあるのでしょうが、とりあえず「SQLServer Posershell」を使ってやってみた。
以前の説明で「SQL Server」用のPowershell環境ができていれば特に難しいことは何も無い。
001 002 003 004 005 | dir SQLSERVER:\sql\localhost\sqlexpress\Databases\Northwind\tables | ?{$_.name -like "order*"} | %{$name=$_.name invoke-sqlcmd -database Northwind -query "select * from $name" | Export-Csv "d:\desktop\$name.csv" -NoTypeInformation} |
テーブルに日本語が含まれる場合はEncoding指定も必要になる。
自PCでは特に問題は無かったのだが、幾つかのサーバーで試した所、うまくいかないケースがあった。
Invoke-Sqlcmd : サーバーへの接続を確立しているときにエラーが発生しました。SQL S |
環境を比較しても有効なプロトコルとかに違いはなく、今ひとつ原因がはっきりしない。
あくまでも想像だが、認証にSQLServer認証を使用しているのが原因かもしれない。(invoke-sqlcmdでユーザーID/パスワードは指定を指定したりしても変わらない)
この場合でも、一旦カレントディレクトリをtablesのところまで変更してから実行したりすると上手く行った。
特に運用で使うわけでもなく回避策もあるので良しとする。
外部からの接続でもそうだったが、どうも認証関係がスムーズではない感じだ。
0 件のコメント:
コメントを投稿