sql循环插数10万条不重复数据语句
时间: 2024-10-16 12:09:57 浏览: 26
快速生成10万条测试数据
在SQL中,一次性插入10万条不重复的数据通常会涉及到批量插入或者利用存储过程和队列技术。由于一次性操作可能会对数据库性能产生影响,特别是对于较小的表,分批插入可能是更好的选择。下面是一个基本的示例,展示如何使用循环结构逐批插入数据:
```sql
DECLARE @batch_size INT = 1000;
DECLARE @data TABLE (your_column1 INT, your_column2 VARCHAR(50), ...); -- 假设你已经有了10万条数据
INSERT INTO @data (your_column1, your_column2, ...)
VALUES
... -- 这里列出10万条数据的元组(每行对应一条数据)
WHILE EXISTS (SELECT * FROM @data)
BEGIN
INSERT INTO your_table (your_column1, your_column2, ...) -- 你的目标表
SELECT * FROM @data
OUTPUT Inserted.your_column1, Inserted.your_column2 INTO #temp_table
DELETE FROM @data WHERE id IN (
SELECT TOP (@batch_size) id
FROM @data
ORDER BY id
);
-- 清理临时表用于下一批次插入
IF @@ROWCOUNT > 0
BEGIN
INSERT INTO your_table
SELECT * FROM #temp_table;
DROP TABLE #temp_table;
END
END
```
这个例子假设你有一个临时表`@data`存放你要插入的数据,并通过一个循环将数据分成小批量插入到目标表`your_table`。注意,这只是一个基础示例,实际应用中需要根据数据库的具体限制和性能优化调整。
阅读全文