我正在使用SQL Server 2012。
我的问题是在一个查询中插入100或50或类似的东西。我使用这个查询:
insert into mystudent(First_Name, Last_Name)
values('M.Sibtain', 'Zaffar'), ('M.Sibtain', 'Zaffar')
我知道在一个查询中插入100个不同的记录而不改变列值是没有意义的,但我的问题是如何插入相同的记录5或10次,就像用一个单词重复查询一样:< / p>
insert into mystudent(First_Name, Last_Name)
values('M.Sibtain','Zaffar') repeat 5
是否有可能或者有没有这样的方法可以一次又一次地执行查询?
任何帮助将不胜感激。
更新:由于很多用户都在编辑我的问题,所以我请求每位访问者请尝试解决它而不是编辑它。感谢
答案 0 :(得分:3)
如果您使用的是SQL Server Management Studio ,则可以使用insert into mystudent(First_Name, Last_Name)
values('M.Sibtain','Zaffar')
go 5
来实现此目的:
INSERT
这将执行此特定c = getchar()
五次。
答案 1 :(得分:3)
你可以这样做:
insert into mystudent(First_Name, Last_Name)
select top 100 'M.Sibtain','Zaffar'
from sysobjects
要获得更多记录,或者可以肯定,您可以交叉加入:
from sysobjects a, sysobjects b, sysobjects c
答案 2 :(得分:1)
使用递归cte:
DECLARE @t TABLE
(
First_Name NVARCHAR(MAX) ,
Last_Name NVARCHAR(MAX)
);
WITH cte
AS ( SELECT 1 AS C
UNION ALL
SELECT C + 1
FROM cte
WHERE cte.C < 100
)
INSERT INTO @t
SELECT 'M.Sibtain' ,
'Zaffar'
FROM cte
OPTION(MAXRECURSION 0)
答案 3 :(得分:0)
DECLARE @tbl TABLE
(
Id INT IDENTITY(1,1),
FirstName NVARCHAR(50),
LastName NVARCHAR(50)
)
INSERT INTO @tbl
SELECT 'M.Sibtain','Zaffar'
DECLARE
@number INT
SELECT
@number = 100
SELECT FirstName,LastName
FROM @tbl t
CROSS APPLY
( SELECT *
FROM master..spt_values m
WHERE m.number <= @number AND m.number > 0 and m.Type = 'P'
) x