如何使用AutoIncrement增加相同表的数据.i有一个包含4列的表
id type no amount
1 type1 a1 1000
2 type1 a2 2000
3 type2 b1 3000
4 type3 c1 4000
使用Loop如何将它们增加到相同数据的行。
id type no amount
1 type1 a1 1000
2 type1 a2 2000
3 type2 b1 3000
4 type3 c1 4000
5 type1 a1 1000
6 type1 a2 2000
7 type2 b1 3000
8 type3 c1 4000
9 type1 a1 1000
10 type1 a2 2000
11 type2 b1 3000
12 type3 c1 4000
请建议我使用最好的循环。我如何才能继续前进
答案 0 :(得分:1)
在交叉连接中使用具有足够行数的表。
这将在表格中添加您已有的行100次。
insert into YourTable(type, no, amount)
select type, no, amount
from YourTable
cross join (
select top(100) 1
from sys.all_objects
) as T(X)
答案 1 :(得分:0)
这是将表的一部分插入到同一个表中的方法。
INSERT INTO TABLE1
SELECT TOP 4 type,no,amount
FROM TABLE1
ORDER BY ID
答案 2 :(得分:0)
有两种方法可以达到要求:
如果插入语句很容易编写脚本并且记录较少:
USE <database_name>
Go
INSERT INTO looprecords([type],[no],[amount]) VALUES('type1','a1',1000);
INSERT INTO looprecords([type],[no],[amount]) VALUES('type1','a2',2000);
INSERT INTO looprecords([type],[no],[amount]) VALUES('type2','b1',3000);
INSERT INTO looprecords([type],[no],[amount]) VALUES('type3','c1',4000);
Go 5 -- You can control this number on how many times you want to loop.
如果插入语句不能轻易编写脚本,那么:
insert into looprecords([type],[no],[amount])
select [type],[no],[amount] from looprecords;
每次运行它都会按顺序插入记录1,2,4,8,16,32 ........等等。 (例如,如果存在16条记录,则在下一次运行中它将为您提供32条记录)
将T-SQL放在任何有效的循环中以获得所需的结果。
我希望它已经回答了你的问题。