我有这段代码,从$dmvResult(数据表)批量复制到SQL Server表中。
$dmvResult = DMV_Query 'SELECT [SESSION_ID], [SESSION_SPID]
FROM $SYSTEM.DISCOVER_SESSIONS';
$ConnectionString ='Data Source={0}; Database={1}; Trusted_Connection=True;' -f $Server,$DB
$bulkCopy = new-object Data.SqlClient.SqlBulkCopy($ConnectionString)
$bulkCopy.DestinationTableName=$TableSomething
foreach ($column in $dmvResult.Columns) {
$bulkCopy.ColumnMappings.Add($column.ColumnName, $column.ColumnName) > $null
}
$bulkCopy.WriteToServer($dmvResult)它工作得无懈可击,但是,它会追加数据,因此会创建越来越多的行。是否可以在每次运行脚本时以某种方式覆盖SQL Server表中的数据?我不想保留现有的数据,而是在每次脚本运行时覆盖它
从本质上讲,我想做这样的事情:
$bulkCopy.WriteToServer($dmvResult) | overwrite发布于 2020-01-24 00:42:46
我也有同样的问题。我看到的唯一解决办法是创建一个临时表并对其执行bulkCopy。然后使用存储过程合并临时表和要覆盖的表。
https://stackoverflow.com/questions/54471629
复制相似问题