大批量的记录要更新到表里的问题
假设表的结构如下:
ID 数据
----------------
1 22.3
2 45.2
3 58.8
5 287.0
9 239.1
现在又采集上来大批的数据放在内存里或文本文件里,接下来要把数据送进表里,要求:对于已存在的ID更新记录(update),新的ID则添加(insert)
请问如何操作最快?
------解决方案----------------------写一个存储过程,通过存储过程调用来插入
create proc dbo.PrcLoadData
@intId int,
@numData int
as
set nocount on
if exists(select 1 from T_Data where ID=@intId)
update T_Data set Data=@numData where Id=@intId
else
insert T_Data select @intId,@numData
Go
-- 调用存储过程
exec dbo.PrcLoadData 10,66.5
Go
------解决方案--------------------对于已存在的ID更新记录(update),新的ID则添加??!!!
这样的话,不如把原表的数据全部删除,然后 插入 。也是一样的效果,而且简单省时