我已经创建了一个测试表来测试这是否可行,我的任务是在多行中添加相同的值:
declare @counter int
set @counter = 100
case when @counter > 0 then insert into table test values('1','2')
@count=@count - 1
现在这应该在100行中添加值1和2,但它不起作用。任何人都可以确认上述代码是否接近解决任务?
答案 0 :(得分:2)
DECLARE @counter INT = 100;
WHILE @counter > 0
BEGIN
insert into table test values('1','2');
@count=@count - 1;
END;
但这可能更好,因为同时发送所有100个插入
<强> Fiddle Demo 强>
CREATE table test (
f1 text,
f2 text
);
;WITH e1(n) AS
(
SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL
SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL
SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1
), -- 10
e2(n) AS (
SELECT 1 FROM e1 CROSS JOIN e1 AS b
) -- 100
INSERT INTO test
SELECT '1', '2'
FROM e2;
SELECT *
FROM test;
答案 1 :(得分:2)
由于这仅用于测试,因此您可以将其变得非常简单。我绝不会在生产中使用这样的代码,但是为了生成测试数据,这很好。
insert into table test values('1','2')
go 100
答案 2 :(得分:0)
VAR1