Dus*_*vis 0 sql-server sql-server-2008
我有一个从CSV批量插入表格的流程.我现在要求来自CSV的一些数据将包含"更新的"记录(先前导入但现在已更改的数据).
在这一点上,我有一个完整的重复表.是否可以根据PK更新BULK INSERT(甚至在插入之前删除)记录?
我宁愿不在此过程中添加第二步以删除重复项.
编辑:我只是运行类似于以下的删除查询而不是临时表
declare @tbl table
(
id int,
ref nvarchar(10)
)
insert into @tbl
values(1, 'AAAA'),
(2, 'BBBB'),
(3, 'CCCC'),
(4, 'AAAA'),
(5, 'BBBB'),
(6, 'AAAA')
delete from @tbl where id in (
select id from
(
select
id,
ref,
RANK() OVER(partition by ref order by id desc) as rnk
from @tbl) d
where rnk > 1
)
select * from @tbl
Run Code Online (Sandbox Code Playgroud)
如果是我,我会加载到临时表并从那里进行重复.我不确定BCP是否具有该功能,但我会担心任何类型的逻辑,我没有直接和可见的控制.
它还会阻止您根据要加载的数据进行QC检查.使用临时表,您可以进行某种类型的PK比较,以确保您具有正确数量的不同值.
| 归档时间: |
|
| 查看次数: |
5074 次 |
| 最近记录: |