SQL一次性插入多条数据

本文详细介绍了使用SQL进行数据插入的各种技巧,包括单条记录插入、批量插入、从其他表选择数据进行插入等方法,并对比了使用UNION ALL与ALL的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--添加一条记录  
 insert into tableName(col1,col2,col3) values (val1,val2,val3)
--添加多条记录
 insert into tableName(col1,col2,col3) 
 select val1,val2,val3 
 union all
 select val1,val2,val3
 、、、
---当把 union all 换成 all 后,相同记录只插入一次,不会重复插入(必须所有字段都相同时,自动增长列除外)

---从另外的一张表中读取多条数据添加到新表中
 insert into tableName(col1,col2,col3)
 select val1,val2,val3 from tagTable

--从其他的多张表中读取数据添加到新表中
 insert into tableName(col1,col2,col3)
 select val1,val2,val3 from tagTableA
 union all
 select val1,val2,val3 from tagTableB

 

SQL Server中,一次性插入多条相同的数据可以通过多种方法实现。以下是几种常见的方法: 1. **使用`INSERT INTO ... SELECT`语句**: 这种方法适用于从一个表中选择数据插入到另一个表中。如果你想插入多条相同的数据,可以将数据硬编码在`SELECT`语句中。 ```sql INSERT INTO TableName (Column1, Column2, Column3) SELECT 'Value1', 'Value2', 'Value3' UNION ALL SELECT 'Value1', 'Value2', 'Value3' UNION ALL SELECT 'Value1', 'Value2', 'Value3'; ``` 2. **使用`VALUES`关键字**: 你可以直接在`INSERT INTO`语句中使用多个`VALUES`子句来插入多条数据。 ```sql INSERT INTO TableName (Column1, Column2, Column3) VALUES ('Value1', 'Value2', 'Value3'), ('Value1', 'Value2', 'Value3'), ('Value1', 'Value2', 'Value3'); ``` 3. **使用临时表或表变量**: 你可以先创建一个临时表或表变量,插入多条相同的数据,然后从临时表或表变量中插入到目标表。 ```sql -- 创建临时表 CREATE TABLE #TempTable (Column1 VARCHAR(50), Column2 VARCHAR(50), Column3 VARCHAR(50)); -- 插入数据到临时表 INSERT INTO #TempTable (Column1, Column2, Column3) VALUES ('Value1', 'Value2', 'Value3'), ('Value1', 'Value2', 'Value3'), ('Value1', 'Value2', 'Value3'); -- 插入数据到目标表 INSERT INTO TableName (Column1, Column2, Column3) SELECT Column1, Column2, Column3 FROM #TempTable; -- 删除临时表 DROP TABLE #TempTable; ``` 4. **使用`CROSS JOIN`生成多条记录**: 你可以使用`CROSS JOIN`与一个生成序列的表(如`sys.objects`)结合,来生成多条相同的记录。 ```sql INSERT INTO TableName (Column1, Column2, Column3) SELECT 'Value1', 'Value2', 'Value3' FROM sys.objects WHERE type = 'S' AND name = 'syscolumns'; ``` 以上方法可以根据具体需求选择使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值