首页 > 解决方案 > 使用 powershell 将数百万条记录转换并插入到多个表中

问题描述

使用 powershell 从表中检索 100 万条记录。需要转换所有这 100 万条记录,然后与一些子表一起插入另一个父表。我可以使用 for-each 循环(对于每条记录,转换然后插入)来做到这一点,但需要数十个小时。尝试了以下 URL 中提到的以下方法,但没有太大帮助。 构建批量插入语句powershell到sql

有没有其他方法可以使用 powershell 解决问题?请参阅下面的示例代码片段,其中 table[0] 中的数据集包含使用 ForEach 迭代的 100 万条记录

$DataSet.Tables[0] | ForEach {
    $VALUE1 = $_.VALUE1
    $VALUE2 = $_.VALUE2
    $VALUE3 = $_.VALUE3
    $VALUE4 = $_.VALUE4
    $InsertQuery = "INSERT INTO PARENT_TABLE([column1],[column2],[column3],[column4]) VALUES (@col1,@col2,@col3,@col4);
        INSERT INTO CHILD_TABLE1([column1],[column2],[column3]) VALUES (@col1,@col2,@col3);
        INSERT INTO CHILD_TABLE2([column1],[column2],[column3]) VALUES (@col1,@col2,@col3);"        
    $SqlCmd.Connection = $SqlConnection
    $SqlCmd.CommandText = $InsertQuery
    $SqlCmd.Parameters.Add("@col1", $VALUE1) | Out-Null
    $SqlCmd.Parameters.Add("@col2", $VALUE2) | Out-Null
    $SqlCmd.Parameters.Add("@col3", $VALUE3) | Out-Null
    $SqlCmd.Parameters.Add("@col4", $VALUE4) | Out-Null
    $SqlCmd.ExecuteNonQuery() | Out-Null
}

标签: sqlpowershellpowershell-3.0

解决方案


推荐阅读