sqlserver 2008 BULK insert 如何实现发现有重复索引是更新数据 20
比如:a列b列1a2b3c4d5ebulkinserta列b列2b3cc4d5e6f插入后希望得到1a2b3cc4d5e6f因为每次更新的数据很多,大概每小时都会去更新2...
比如:
a列 b列
1 a
2 b
3 c
4 d
5 e
bulk insert
a列 b列
2 b
3 cc
4 d
5 e
6 f
插入后希望得到
1 a
2 b
3 cc
4 d
5 e
6 f
因为每次更新的数据很多,大概每小时都会去更新20万条数据。所以才使用bulk insert .
表是用户表,每次取在线的用户,bulk insert进用户总表。如果重复,证明他活着的,就需要更新他的时间。
使用UPDATE一个是速度太慢,一个是日志受不了。
如果使用update 大概语句是 update tableA set MyDateTime=getdate() where userid in (20万个id)
然后再bulk insert 补充新上线的
效率低。。 展开
a列 b列
1 a
2 b
3 c
4 d
5 e
bulk insert
a列 b列
2 b
3 cc
4 d
5 e
6 f
插入后希望得到
1 a
2 b
3 cc
4 d
5 e
6 f
因为每次更新的数据很多,大概每小时都会去更新20万条数据。所以才使用bulk insert .
表是用户表,每次取在线的用户,bulk insert进用户总表。如果重复,证明他活着的,就需要更新他的时间。
使用UPDATE一个是速度太慢,一个是日志受不了。
如果使用update 大概语句是 update tableA set MyDateTime=getdate() where userid in (20万个id)
然后再bulk insert 补充新上线的
效率低。。 展开
1个回答
展开全部
sqlsever数据存在就更新,不存在就插入的两种方法
两种经常使用的方法:
1. Update, if @@ROWCOUNT = 0 then insert
UPDATETable1 SETColumn1 = @newValue WHEREId = @id
IF@@ROWCOUNT= 0
BEGIN
INSERT INTOTable1 (Id, Column1) VALUES(@id, @newValue)
END
如果一行数据存在更新就有效,否则插入将被执行.个人感觉这种方法倾向于数据多半存在于数据表中的情况;
2. If row exists update, otherwise insert
IFEXISTS(SELECT* FROMTable1 WHEREId = @id)
BEGIN
UPDATETable1 SETColumn1 = @newValue WHEREId = @id
END
ELSE
BEGIN
INSERT INTOTable1 (Id, Column1) VALUES(@id, @newValue)
END
在这种方法,select语句执行后紧接着就是执行update或是insert,消耗资源是少与方法一的.
两种经常使用的方法:
1. Update, if @@ROWCOUNT = 0 then insert
UPDATETable1 SETColumn1 = @newValue WHEREId = @id
IF@@ROWCOUNT= 0
BEGIN
INSERT INTOTable1 (Id, Column1) VALUES(@id, @newValue)
END
如果一行数据存在更新就有效,否则插入将被执行.个人感觉这种方法倾向于数据多半存在于数据表中的情况;
2. If row exists update, otherwise insert
IFEXISTS(SELECT* FROMTable1 WHEREId = @id)
BEGIN
UPDATETable1 SETColumn1 = @newValue WHEREId = @id
END
ELSE
BEGIN
INSERT INTOTable1 (Id, Column1) VALUES(@id, @newValue)
END
在这种方法,select语句执行后紧接着就是执行update或是insert,消耗资源是少与方法一的.
追问
使用UPDATE一个是速度太慢,一个是日志受不了。
如果使用update 大概语句是 update tableA set MyDateTime=getdate() where userid in (20万个id)
然后再bulk insert 补充新上线的
效率低。。
追答
走存储过程,每次一条,in速度太慢了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询