首页 文章

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

提问于
浏览
0

我有一个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()~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~IniteInfo:NotSpecified:(:) [],MethodInvocationException FullyQualifiedErrorId:SqlException

我只能假设我指定参数错误,但谷歌搜索SO并没有表现出任何有用的信息 . 有任何想法吗?

1 回答

  • 0

    试试吧

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

相关问题