sql-server - 在一个连接中将数组中的 PowerShell 值插入 SQL Server 表
问题描述
如果我想在一个连接中插入数组中的值,我该如何修改下面的代码?到目前为止,我收到错误“已经有一个打开的 DataReader 与此命令关联,必须先关闭”,除非我将 $Connection.Open() 和 $Connection.Close() 放在 for 循环中,这将花费我单个连接的速度。
$list = 'aaa','bbb','cccc','ddddd','eeeee','ffff'
$Connection = New-Object System.Data.SQLClient.SQLConnection
$Connection.ConnectionString = "server='$Server';database='$Database';trusted_connection=true;"
$Connection.Open()
$Command = New-Object System.Data.SQLClient.SQLCommand
$Command.Connection = $Connection
foreach($i in $list) {
$sql ="if not exists (select 1 from [bfs] where [key] = '$i' )
begin
insert bfs
select '$i'
end
"
$Command.CommandText = $sql
$Command.ExecuteReader()
}
$Connection.Close()
解决方案
尝试使用 ExecuteNonQuery() 而不是 ExecuteReader()。ExecuteNonQuery() 不构建 DataReader。
...
$Command.CommandText = $sql
$Command.ExecuteNonQuery()
...
推荐阅读
- amazon-s3 - 无服务器框架从 CloudFormation 模板为 S3 存储桶创建额外字符
- java - BitmapFactory.decodeByteArray(decode, 0, decode.length) 返回 null
- windows-subsystem-for-linux - 在 /home 下无法运行 .exe 但在 /mnt/c 下可以
- c++ - leveldb 是否每 4KB 或 2KB 的 Data Block 生成 Bloom Filter?
- ignite - Apache Ignite .Net CacheEvent
- reactjs - null 不是对象(评估'InstrumentationConstants_1.InstrumentationConstants.BREADCRUMB_VISIBILITY_CRASHES_ONLY')
- python - Raspberry Pi Buster 更新中断音频输入
- ios - 快速合并具有正确方向的多个视频资产
- c# - 如何将嵌套的 XML 文件反序列化为 C# 中的对象
- google-apps-script - 删除或删除 Google 表格脚本导出到 CSV 的第一行