如何在SQL中向表中添加“X”行?

如何在SQL中向表中添加“X”行?,sql,sql-server,insert,rows,Sql,Sql Server,Insert,Rows,如果我有一张桌子,比如说顾客 我希望从用户那里收到一个数字表单,并在Customer表中创建X行。 假设客户在customer表中添加了数字4“我想要4个新行”。 我该怎么做 insert into Customer Valus ('Helen' , 36 ) 这是你想要的吗- INSERT INTO Customers(Name) VALUES(NULL) GO 10 这将插入10行,您可以稍后进行更新 您可以使用存储过程,然后传递要添加的客户数。像这样的 create procedure

如果我有一张桌子,比如说顾客 我希望从用户那里收到一个数字表单,并在Customer表中创建X行。 假设客户在customer表中添加了数字4“我想要4个新行”。 我该怎么做

insert into Customer Valus ('Helen' , 36 )

这是你想要的吗-

INSERT INTO Customers(Name)
VALUES(NULL)
GO 10

这将插入10行,您可以稍后进行更新

您可以使用存储过程,然后传递要添加的客户数。像这样的

create procedure AddNewCustomers 
@NumberOfCustToAdd int 
as 

declare @counter int 

set @counter = 0 

while @counter < @NumberOfCustToAdd
begin
    //put your insert statement here
    set @counter = @counter + 1
end

go

现在,这将从传入的变量生成4个相同的行。这将最多为100行

取消注释并根据需要更正insert语句

DECLARE @I INT, @NAME NVARCHAR(10)
SET @NAME = 'HELEN'
SET @I=4

;WITH MYCTE
AS
(
SELECT @NAME AS NAME, X=1
UNION ALL 
SELECT NAME, X+1
FROM MYCTE
WHERE X<@I
)
-- INSERT INTO...
SELECT * 
FROM MYCTE OPTION(MAXRECURSION 100)

你为什么要创建4个空行?这是一种思维实验还是你打算这么做。我很好奇,这是学校作业还是什么?这可能有什么真实的应用程序?多好的协同效应啊!我读了一篇文章,他的第一个答案给了我答案——这种方法的局限性-
DECLARE @I INT, @NAME NVARCHAR(10)
SET @NAME = 'HELEN'
SET @I=4

;WITH MYCTE
AS
(
SELECT @NAME AS NAME, X=1
UNION ALL 
SELECT NAME, X+1
FROM MYCTE
WHERE X<@I
)
-- INSERT INTO...
SELECT * 
FROM MYCTE OPTION(MAXRECURSION 100)