首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用BulkCopy覆盖SQL Server表数据

使用BulkCopy覆盖SQL Server表数据
EN

Stack Overflow用户
提问于 2019-02-01 09:21:38
回答 1查看 424关注 0票数 2

我有这段代码,从$dmvResult(数据表)批量复制到SQL Server表中。

代码语言:javascript
复制
$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表中的数据?我不想保留现有的数据,而是在每次脚本运行时覆盖它

从本质上讲,我想做这样的事情:

代码语言:javascript
复制
$bulkCopy.WriteToServer($dmvResult) | overwrite
EN

回答 1

Stack Overflow用户

发布于 2020-01-24 00:42:46

我也有同样的问题。我看到的唯一解决办法是创建一个临时表并对其执行bulkCopy。然后使用存储过程合并临时表和要覆盖的表。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54471629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档