2

このsqlcmdスニペットはバッチで機能していましたが、PowerShellに変換すると壊れました。これは私がPowerShellを使用して呼び出そうとしているものです

Sqlcmd -S localhost\instance -d database -U username -P password -i "sqlQuery.sql" -s "," > \sqlOutput.csv -I -W -k

invoke-sqlcmdを試しましたが、「「invoke-sqlcmd」という用語は、コマンドレット、関数、スクリプトファイル、または操作可能なプログラムの名前として認識されません」というエラーが表示されます。

以下のコメントに関して、私は必要なスナップインをロードしました。これは役に立ちましたが、現在このエラーが発生しています。"Invoke-sqlcmd:パラメータ名's'があいまいなため、パラメータを処理できません。

一重引用符で囲むと...

invoke-Sqlcmd '-S localhost\instance -d database -U username -P password -i "sqlQuery.sql" -s "," > \sqlOutput.csv -I -W -k'

「SQLサーバーへの接続の確立中にネットワーク関連またはインスタンス固有のエラーが発生しました。バッチから呼び出されたときに、ここで(同じボックスで)使用しているのと同じクレデンシャルが機能するため、これは意味がありません。 。

4

2 に答える 2

2

最初に、PowerShellまたはコマンドプロンプトからsqlps.exeを呼び出す必要があります(Powershell用のSQL Serverスナップインがインストールされていることを前提としています)。

それを行ったら、実行get-help Invoke-Sqlcmdして回避策を見つけます。

あなたの質問に対して、それは-Sではなく-ServerInstanceです

 PS SQLSERVER:\> Invoke-Sqlcmd -ServerInstance "srvrName" -Database "master" -Username "user123" -Password "x$34fth" 
-InputFile "C:\Users\testUser\Desktop\test.sql" | Out-File "C:\Users\testUser\Desktop\out.txt"

MSDNドキュメントを使用することもできます

于 2012-04-07T05:21:39.123 に答える
0

後藤

  • Windowsエクスプローラー
  • コンピュータを右クリック
  • プロパティ
  • システムの詳細設定
  • 環境変数

PSModulePathが次の文字列で設定されていることを確認してください。

C:\Program Files (x86)\Microsoft SQL Server\110\Tools\PowerShell\Modules

于 2014-01-24T18:22:18.817 に答える