SqlServer批量插入测试数据

56 篇文章 0 订阅
56 篇文章 1 订阅

        我们在开发中,有时候难免会需要大批量的数据进行一些测试,这时候我们可能首先想到的就是使用Sql语句进行循环添加数据到测试库中,但是这样效率相对来说就会慢很多。于是我们可以批量将要添加的数据先存储到临时表中,然后再分批次进行批量插入。

        如下所示,我们将99999999条数据分每100000条数据进行一次插入操作(添加到测试表V_DemoTab中),具体如下所示:


--循环批量插入测试数据(插入99999999条数据)

--根据目标表(V_DemoTab)结构复制一个临时表(TempTb)
SELECT [id],
       [insdate]
INTO #temp
FROM [dbo].[V_DemoTab]
WHERE 1 = 2;

--定义数据索引号
DECLARE @thisIndex INT;
SET @thisIndex = 1;

WHILE @thisIndex <= 100000000
	BEGIN
		INSERT #temp
		(
			[id],
			[insdate]
		)
		VALUES
		(@thisIndex,
			--随机时间
			CAST(ABS(CHECKSUM(NEWID())) % CAST(CAST('2019-01-11' AS DATETIME) - CAST('1990-01-01' AS DATETIME) AS BIGINT)
			+ CAST(CAST('1990-01-01' AS DATETIME) AS BIGINT) AS DATETIME) + RAND()
		);

		--每10万条数据批量插入一次
		IF @thisIndex % 100001 = 100000
			BEGIN
				INSERT [dbo].[V_DemoTab]
				(
					[id],
					[insdate]
				)
				SELECT *
				FROM #temp;

				TRUNCATE TABLE #temp;
			END

		SET @thisIndex = @thisIndex + 1;
	END

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值