2017-12-15 56 views
0

SQL Serverストアドプロシージャを実行するPowerShellスクリプトがあります。ストアドプロシージャのパラメータは@backupTypeで、値はCHAR(1)です。私はこのようにそれを呼んでいる:Powershellのcharパラメータを使用してストアドプロシージャを呼び出す方法

$SqlConnection = New-Object System.Data.SqlClient.SqlConnection 
$SqlConnection.ConnectionString = "Server=(local);Database=master;Integrated Security=True" 
$SqlConnection.Open() 
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand 
$SqlCmd.CommandText = "sp_myStoredProcedure" 
$SqlCmd.Connection = $SqlConnection 

$SqlCmd.Parameters.Add("@backupType", [System.Data.SqlDbType]"Char", 1) 
$SqlCmd.Parameters["@backupType"].Value = "F" 

$result = $SqlCmd.ExecuteNonQuery() 
$SqlConnection.Close() 

私が手にエラーがある:「0」引数(複数可)との「は、ExecuteNonQuery」を呼び出す

例外:「プロシージャまたは関数 『sp_myStoredProcedureは』パラメータを期待します'@backupType'は提供されませんでした。ラインで:14文字:1

  • $は
  • )(= $ SqlCmd.ExecuteNonQueryをもたらす~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
    • CategoryInfo:NotSpecified:(:) []、MethodInvocationException
    • FullyQualifiedErrorId:SqlExceptionが

私はパラメータを間違って指定していると仮定することしかできませんが、Googleの検索とSOの検索で役立つものは何も浮上していません。何か案は?

+0

で試すには、ハッシュテーブル/辞書 '$ SqlCmd.Parameters'ですか? – TheIncorrigible1

+0

コードはわかりました。実際のコードですか? – DavidG

+0

@ TheIncorrigible1私はそうは思わない。私はそれが強く型付けされたパラメータのコレクションだと思っていますが、私は100%確実ではありません。 – getsetcode

答えて

0

$SqlCmd.CommandType = [System.Data.CommandType]::StoredProcedure 
$SqlCmd.Parameters.Add("@backupType", [System.Data.SqlDbType]::Char, 1).Value="F" 
+0

ありがとうございますが、これは私に同じエラーを与えました。 – getsetcode

関連する問題