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

问题描述 投票:1回答:1

我使用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;
sql powershell ssis sqldatatypes sql-variant
1个回答
0
投票

对于完全相同的SP,我有完全相同的问题。试试这个:

$cmd.Parameters.AddWithValue("@parameter_value", $ParameterValue -As $ParameterValue.GetType().Name) | Out-Null;
© www.soinside.com 2019 - 2024. All rights reserved.