求帮助,sqlserver 2005 多线程批量插入数据库数据丢失

求帮助,sqlserver 2005 多线程批量插入数据库数据丢失,第1张

一次性插入大量数据,只能使用循环

如:游标,while 循环语句

下面介绍While 循环插入数据,

SQL 代码如下:

IF OBJECT_ID('dbo.Nums') IS NOT NULL

DROP TABLE dbo.Nums

GO

CREATE TABLE dbo.Nums(n INT NOT NULL PRIMARY KEY)

DECLARE @max AS INT, @rc AS INT

SET @max = 5000000

SET @rc = 1

INSERT INTO Nums VALUES(1)

WHILE @rc * 2 <= @max

BEGIN

INSERT INTO dbo.Nums SELECT n + @rc FROM dbo.Nums

SET @rc = @rc * 2

END

INSERT INTO dbo.Nums SELECT n + @rc FROM dbo.Nums WHERE n + @rc <= @max

--以上函数取自Inside SQL Server 2005: T-SQL Query一书。

INSERT dbo.Sample SELECT n, RAND(CAST(NEWID() AS BINARY(16))) FROM Nums

m_vcEFileMsg.clear()

这句是否也是多线程 线程函数里面的呢?如果是那么就会悲剧。一旦有一个线程执行了这句,那么其他线程push_back的数据可能还没上传就没了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11908484.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存