我有一些情况需要编写多行相同的值来设置一些表。假设我必须添加120行,其中填充了两列。我正在寻找一个快捷方式,而不是重复插入行n次。这该怎么做?
答案 0 :(得分:1)
怎么样
Insert Table( colsnames )
Select Top 120 @value1, @Value2, etc.
From AnyTableWithMoreThan120Rows
只需确保@Value列表中的值类型与colNames列表
匹配答案 1 :(得分:1)
怎么样
insert into tbl1
(col1,col2)
(select top 120 @value1,@value2 from tbl2)
如果在 sql server 2008 中。 sql server 2008中的新增功能,可以在单个查询中将多行插入表中。
insert into tbl1
(col1,col2)
values
(@value1,@value2),(@value1,@value2),.....(@value1,@value2)
答案 2 :(得分:1)
在SQL Server Management Studio中,您可以将“GO”关键字与参数一起使用:
INSERT INTO YourTable(col1, col2, ...., colN)
VALUES(1, 'test', ....., 25)
GO 120
但这只适用于Mgmt Studio(它不是一个合适的T-SQL命令 - 它是一个Mgmt Studio命令字)。
马克
答案 3 :(得分:0)
将值放在未使用的表中以便安全保存。从那里你可以从这个表插入你需要设置的表。
答案 4 :(得分:0)
答案 5 :(得分:0)
你甚至可以尝试这样的事情(只是一个例子)
declare @tbl table(col1 varchar(20),col2 varchar(20))
; with generateRows_cte as
(
select
1 as MyRows
union all
select
MyRows+1
from generateRows_cte
where MyRows < 120
)
insert into @tbl(col1,col2)
select
'col1' + CAST(MyRows as varchar),'col2' + CAST(MyRows as varchar)
from generateRows_cte OPTION (MAXRECURSION 0)
select * from @tbl
注意: - 为什么不尝试从数据集中批量插入SqlServer?我没有注意到你有一个前端(VB)!