我有一个名为tbl_emp的空表。在这张表中,我有超过7列。
列的格式如下:
Id, name, section branch, company, grade and so on.
现在我要插入1000条记录,只显示
1,
2
3,
.,
.
.
1000
在id部分中为autoid。 但其他栏目是空白的。
请帮助插入此类数据。
答案 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