日期:2014-05-19  浏览次数:20448 次

大批量的记录要更新到表里的问题
假设表的结构如下:
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则添加??!!!
这样的话,不如把原表的数据全部删除,然后 插入 。也是一样的效果,而且简单省时