假设表的结构如下:
ID 数据
----------------
1 22.3
2 45.2
3 58.8
5 287.0
9 239.1现在又采集上来大批的数据放在内存里或文本文件里,接下来要把数据送进表里,要求:对于已存在的ID更新记录(update),新的ID则添加(insert)
请问如何操作最快?
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
这样的话,不如把原表的数据全部删除,然后 插入 。也是一样的效果,而且简单省时
freecs(北狼):新数据的ID不完全囊括旧数据的ID,全部删除会造成丢失。
多谢各位,请大家接着出主意,今晚散分