如何使用Powershell处理sql_Variant sql数据类型

时间:2019-02-18 10:04:00

标签: sql powershell ssis sqldatatypes sql-variant

我正在使用Power Shell执行其中一个存储过程,该存储过程具有数据类型为sql_Variant的参数之一,并驻留在SSISDB(系统存储过程)中

由于sql_variant支持多种数据类型,因此我正在传递int,string和boolean数据类型。

传递字符串数据类型时,

存储过程执行良好。但不是int和boolean。

过程名称为

  

Catalog.Set_Object_Parameter_Value

它具有一个参数,数据类型为SQL_Variant。下面是屏幕截图。

enter image description here

基于某些条件输入值时,我将获得int / string / bool数据类型。

在使用Power-shell输入之前,如何将这些值处理/转换为Sql_Variant数据类型。

目前,我的power-shell命令如下所示。

$procSignature = "EXEC [catalog].[set_object_parameter_value] @object_type,@folder_name,@project_name,@parameter_name,@parameter_value,@object_name";
                            $cmd = New-Object System.Data.SqlClient.SqlCommand;
                            $cmd.Connection = $catalogConnection;
                            $cmd.CommandText = $procSignature;
                            $cmd.Parameters.AddWithValue("@object_type", $Scope ) | Out-Null;
                            $cmd.Parameters.AddWithValue("@folder_name", $FolderName ) | Out-Null;
                            $cmd.Parameters.AddWithValue("@project_name", $ProjectName ) | Out-Null;
                            $cmd.Parameters.AddWithValue("@parameter_name", $ParmeterName ) | Out-Null;
                            $cmd.Parameters.AddWithValue("@parameter_value", $ParmeterValue ) | Out-Null;
                            $cmd.Parameters.AddWithValue("@object_name", $object ) | Out-Null;

1 个答案:

答案 0 :(得分:0)

我在使用完全相同的SP时遇到了完全相同的问题。试试这个:

$cmd.Parameters.AddWithValue("@parameter_value", $ParameterValue -As $ParameterValue.GetType().Name) | Out-Null;