如何用SQL循环批量插入数据?每周需半自动处理数百条插入操作
解决方法
1. 批量INSERT语句(最直接高效)
不用写循环,直接把所有需要插入的v1、v2值一次性列在同一条INSERT语句里,固定值v3-v6重复复用即可,格式如下:
INSERT INTO [table] ([c1], [c2], [c3], [c4], [c5], [c6]) VALUES (v1_1, v2_1, '固定v3值', '固定v4值', '固定v5值', '固定v6值'), (v1_2, v2_2, '固定v3值', '固定v4值', '固定v5值', '固定v6值'), -- 按这个格式继续添加所有v1、v2组合 (v1_n, v2_n, '固定v3值', '固定v4值', '固定v5值', '固定v6值');
只需把所有v1、v2按行填入,固定值复制粘贴就行,比手动写几百条单独INSERT节省大量时间。
2. 用Excel自动生成SQL语句(适合已有数据整理)
如果你的v1、v2数据已经在Excel里,直接用公式批量生成SQL行:
- 假设Excel A列存v1,B列存v2,固定值分别为
'val3'、'val4'、'val5'、'val6' - 在C1单元格输入公式(如果v1/v2是字符串类型,要加单引号):
="INSERT INTO [table] ([c1], [c2], [c3], [c4], [c5], [c6]) VALUES ('"&A1&"', '"&B1&"', 'val3', 'val4', 'val5', 'val6');") - 下拉公式覆盖所有数据行,然后复制C列的内容,直接在数据库工具里执行即可。
3. 数据库工具导入功能(零SQL基础也能操作)
几乎所有主流数据库管理工具(比如SSMS、Navicat、DBeaver)都支持Excel/CSV批量导入:
- 把v1、v2整理成Excel/CSV,新增c3-c6列并填充固定值
- 打开工具的导入向导,选择文件后映射好表和列,一键完成批量插入,全程不用写SQL。
4. 简单SQL临时表批量插入(适合轻代码方案)
如果想用SQL逻辑实现,以SQL Server为例,用临时表存v1、v2再批量插入:
-- 创建临时表存放所有v1、v2 CREATE TABLE #TempData (c1 数据类型, c2 数据类型); INSERT INTO #TempData VALUES (v1_1, v2_1), (v1_2, v2_2), ...; -- 从临时表批量插入到目标表,自动带上固定值 INSERT INTO [table] ([c1], [c2], [c3], [c4], [c5], [c6]) SELECT c1, c2, '固定v3值', '固定v4值', '固定v5值', '固定v6值' FROM #TempData; -- 用完删除临时表 DROP TABLE #TempData;
只需把所有v1、v2填到临时表的INSERT里,后续自动批量生成带固定值的插入逻辑。
内容的提问来源于stack exchange,提问作者Fernando LimónCaducado Sánchez M
相关产品推荐
相关产品推荐

