如何在sql server中插入1000个空行

时间:2018-02-06 09:53:37

标签: sql-server

我有一个名为tbl_emp的空表。在这张表中,我有超过7列。

列的格式如下:

Id, name, section branch, company, grade and so on.

现在我要插入1000条记录,只显示

1, 
2 
3, 
.,
. 
. 
1000

在id部分中为autoid。 但其他栏目是空白的。

请帮助插入此类数据。

4 个答案:

答案 0 :(得分:2)

如果Id不是IDENTITY列,请执行此操作

INSERT INTO tbl_emp (Id, [name], sectionBranch /*etc etc*/)

SELECT TOP 1000
    Id = ROW_NUMBER()OVER(ORDER BY (SELECT NULL))
    ,NULL
    ,NULL
    /*, etc etc*/
FROM
    master.dbo.spt_values

如果Id是IDENTITY列,请尝试此

SET IDENTITY_INSERT tbl_emp ON;

    INSERT INTO tbl_emp (Id, [name], sectionBranch /*etc etc*/)

    SELECT TOP 1000
        Id = ROW_NUMBER()OVER(ORDER BY (SELECT NULL))
        ,NULL
        ,NULL
        /*, etc etc*/
    FROM
        master.dbo.spt_values


SET IDENTITY_INSERT tbl_emp OFF;

答案 1 :(得分:1)

尝试这样的事情(如果你将Id保留为自动增量,则不需要在插入语句中使用@i):

declare @i int
set @i = 1

while (@i <=1000)
begin
     insert into tbl_emp values (@i, .....,.....)
     set @i = @i + 1
end 

答案 2 :(得分:0)

试试这个:

with cte as(
  select 1 as n, '' c1, '' c2, '' c3, '' c4, '' c5, '' c6, '' c7
  union all
  select n+1,c1,c2,c3,c4,c5,c6,c7 from cte where n < 1000
)

select * 
into my_table
from cte option (maxrecursion 1000)

答案 3 :(得分:0)

Cool_Br33ze solution在性能方面看起来很酷,但这是我的:

CREATE TABLE Test(Id INT IDENTITY, Val VARCHAR(100))
INSERT INTO Test VALUES (NULL)
GO 100