You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将PowerShell字符串数组插入SQL表的LAST_SS_DATE列?

如何将PowerShell时间数组批量插入SQL表的指定列?

可以实现需求,具体操作分三种场景(单条遍历插入、批量高效插入、安全参数化插入),以下是详细步骤和代码:

1. 单条遍历插入(逻辑清晰,适合新手)

遍历$qLastSS_T数组中的每个时间值,为每个值生成独立的INSERT语句并执行:

# 遍历数组内的每个时间戳
foreach ($lastSS in $qLastSS_T) {
    # 构造INSERT语句,将当前遍历的时间值赋值给LAST_SS_DATE列
    $insertQuery = "INSERT INTO Monitoraggio.dbo.IMGs_BKP (DATE,SERVER,SIDE,DAY,SUCCESS,FAILURE_REASON,SS_EXIST,LAST_SS_DATE,LAST_SS_EXIPIRE) 
                   VALUES ('$qDT_RunBKP','$_','$qSide','$qDayOfBKP','$qSucces','$qFailRea','$qSS_Exist','$lastSS','$qLastSS_E');"
    # 执行SQL命令,替换为你的SQL服务器实例地址
    Invoke-SqlCmd -Query $insertQuery -ServerInstance "你的SQL实例地址"
}

注意事项:

  • 你数组中的时间格式2024-07-08 11:56:32符合SQL datetime/datetime2类型的识别要求,无需额外转换
  • 代码中的$_、$qDT_RunBKP等变量需确保已正确赋值,对应表中其他列的合法值

2. 批量插入(高效,适合大量数据)

将所有时间值拼接成一条批量INSERT语句,减少与SQL服务器的交互次数:

# 批量生成VALUES子句
$valueClauses = $qLastSS_T | ForEach-Object {
    "('$qDT_RunBKP','$_','$qSide','$qDayOfBKP','$qSucces','$qFailRea','$qSS_Exist','$_','$qLastSS_E')"
} -Join ",`n"

# 构造完整的批量插入语句
$batchInsertQuery = "INSERT INTO Monitoraggio.dbo.IMGs_BKP (DATE,SERVER,SIDE,DAY,SUCCESS,FAILURE_REASON,SS_EXIST,LAST_SS_DATE,LAST_SS_EXIPIRE) 
                     VALUES $valueClauses;"

# 执行批量插入
Invoke-SqlCmd -Query $batchInsertQuery -ServerInstance "你的SQL实例地址"

3. 参数化查询(生产环境必用,避免SQL注入)

以上字符串拼接方式存在SQL注入风险,生产环境建议使用参数化查询:

foreach ($lastSS in $qLastSS_T) {
    $sqlParams = @{
        Query = "INSERT INTO Monitoraggio.dbo.IMGs_BKP (DATE,SERVER,SIDE,DAY,SUCCESS,FAILURE_REASON,SS_EXIST,LAST_SS_DATE,LAST_SS_EXIPIRE) 
                 VALUES (@date, @server, @side, @day, @success, @failReason, @ssExist, @lastSS, @lastSSE)"
        ServerInstance = "你的SQL实例地址"
        Parameter = @{
            date = $qDT_RunBKP
            server = $_
            side = $qSide
            day = $qDayOfBKP
            success = $qSucces
            failReason = $qFailRea
            ssExist = $qSS_Exist
            lastSS = $lastSS
            lastSSE = $qLastSS_E
        }
    }
    Invoke-SqlCmd @sqlParams
}

内容的提问来源于stack exchange,提问作者ilRobby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 22:31:03