关于t-sql中一次往表里插入多条数据的问题

比方说现在我要做新增,一次性往Goods表里插入10 条数据,比方说这10条数据字段是,id,GoodsName,Price,AreaId,除了AreaId不一样,其他的都是一样,当我操作插入的时候,想让10个数据一次性插入

这样,将SELECT行复制10次,然后改AREAID值即可,可以用变量替换每一个值:

insert into goods 
select id=1,goodsname='台灯',PRICE=100,AREAID=1 union
select id=1,goodsname='台灯',PRICE=100,AREAID=2 union
select id=1,goodsname='台灯',PRICE=100,AREAID=3 union
select id=1,goodsname='台灯',PRICE=100,AREAID=4 union
select id=1,goodsname='台灯',PRICE=100,AREAID=5 union
select id=1,goodsname='台灯',PRICE=100,AREAID=6 union
select id=1,goodsname='台灯',PRICE=100,AREAID=7 union
select id=1,goodsname='台灯',PRICE=100,AREAID=8 union
select id=1,goodsname='台灯',PRICE=100,AREAID=9 union
select id=1,goodsname='台灯',PRICE=100,AREAID=10

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-04
t-sql
一次插入多条数据,除了复制其它表外, 只有重复地写insert. 如果有规律可以用WHILE 循环。

insrt into GOODS (GoodsName,Price,AreaId)values('aaa','bbb','ccc1')
insrt into GOODS (GoodsName,Price,AreaId)values('aaa','bbb','ccc2')
insrt into GOODS (GoodsName,Price,AreaId)values('aaa','bbb','ccc3')
insrt into GOODS (GoodsName,Price,AreaId)values('aaa','bbb','ccc4')
insrt into GOODS (GoodsName,Price,AreaId)values('aaa','bbb','ccc5')
insrt into GOODS (GoodsName,Price,AreaId)values('aaa','bbb','ccc6')
.................追问

这种不好啊,假如有千百万条怎么办?

追答

使用WHILE循环 插入吧。 前提是有规律的那种。

while @i<10000000

insrt into GOODS (GoodsName,Price,AreaId)values('aaa','bbb','ccc'+ Cast(@i as varchar(20)))

set @i=@i+1;

wend

本回答被网友采纳
相似回答