如何解决Powershell在SQL EXEC之前单引号参数中的所有数组元素
我有下面的代码段,并且一切正常,除了看起来好像没有值都用单引号引起来,存储过程给出了这些提示。
在执行SQL之前,是否有办法告诉它将$p
中的每个元素都用单引号引起来?
$p
包含30个不同的元素,可以是数字或字母数字。
Param (
[Parameter(Mandatory=$true)][array]$p
)
Process {
$conn = New-Object System.Data.SqlClient.SqlConnection
$conn.ConnectionString = "Data Source=OurServer;Initial Catalog=OurDatabase;Integrated Security=true"
$cmd = New-Object System.Data.SqlClient.SqlCommand
$cmd.Connection = $conn
$cmd.CommandTimeout = 0
$cmd.CommandText = "EXEC sp_test $p"
}
解决方法
有许多更新数组元素的选项:
# Using -replace
$p = $p -replace '^.*$','''$&'''
# Using foreach-object and string format operator
$p = $p | Foreach-Object { "'{0}'" -f $_ }
# Using foreach method
$p = $p.foreach({"'$_'"})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。