如何使用Powershell中的char参数调用存储过程

时间:2017-12-15 16:35:53

标签: sql-server powershell stored-procedures

我有一个Powershell脚本,我想执行一个SQL Server存储过程。存储过程具有名为@backupType的参数,其中CHAR(1)类型。我这样称呼它:

$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 char:1

     
      
  • $ result = $ SqlCmd.ExecuteNonQuery()
  •   
  • ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
        
    • CategoryInfo:NotSpecified:(:) [],MethodInvocationException
    •   
    • FullyQualifiedErrorId:SqlException
    •   
  •   

我只能假设我指定的参数不对,但谷歌和搜索SO并没有表现出任何有用的信息。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

尝试

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