gpt4 book ai didi

sqlbulkcopy,我想覆盖数据库中的当前行

转载 作者:行者123 更新时间:2023-12-02 04:02:27 26 4
gpt4 key购买 nike

在我的程序中,我正在填充数据表,然后将其批量复制到我的数据库中。

但是,如果行中的 3 列匹配,我希望它覆盖数据库中的一行。

例如,如果我有 5 列

成员(member)编号注册日期姓名地址城市状态

因此,如果 membernum、dateregistered 和 name 匹配,我想覆盖该行。与来自批量插入的数据。在我的程序中,整个数据库表未填充,我认为加载它太大了。

Using bcp As SqlBulkCopy = New SqlBulkCopy(SqlDataSource2.ConnectionString)

bcp.DestinationTableName = "dbo.dashboardtasks"

bcp.WriteToServer(table)

如果最好的方法是使用我的数据库表创建数据表,我将如何比较行,然后覆盖特定 3 列中存在匹配的表。然后仅使用已更改的行或新行更新数据库

INSERT INTO [dashboardtasks] ([tour], [taskname], [deptdate], [tasktype], [desc], [duedate], [compdate], [comments], [agent], [compby], [graceperiod], [id])

最佳答案

Mitch 指出批量复制函数( SqlBulkCopybcpBULK INSERT )仅处理插入,而不处理更新。

解决问题的正常方法是分两个(或更多)步骤执行批量加载 - 首先使用批量插入将数据加载到临时表中,然后使用查询在主表中插入/更新记录基于暂存表中数据的表,例如:

INSERT INTO MyTable
(Column1, Column2, [etc...])
SELECT Column1, Column2, [etc...]
FROM Test_Staging
WHERE [Some condition]

参见SQL SERVER – Insert Data From One Table to Another Table 有关如何从另一个表插入一个表的信息 - 也可以在更新中进行联接,但我正在努力寻找这方面的良好资源。

关于sqlbulkcopy,我想覆盖数据库中的当前行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4846676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com