SELECT TOP 1000000 row_number() over(ORDER by sv.number) AS num
INTO numbertest
from master..spt_values sv CROSS JOIN master..spt_values sv2
SELECT TOP 1000000 IDENTITY(int,1,1) AS Number
INTO NumberTest
FROM master..spt_values sv1
CROSS JOIN master..spt_values s2
我遇到过两种在表中插入1到1000000个数字的方法,这些方法可以完美地工作但不会顺序插入1到1000000个?如何以快速插入率顺序插入?
答案 0 :(得分:0)
我的理解你需要添加/插入序列号为1到10,00,000(十个lac行)的行
你的两个命令似乎是select命令而不是insert命令
确实需要在您的某个字段中添加序列号字段 要么 您可以对任何现有表运行查询以获得序列号的结果,如
例如,表名:employee 提交名称:名称 注意:没有像SerialNumber
那样存在的文件您可以运行命令以获取序列号
的输出e.g。选择ROW_NUMBER()结束(按employee.name排序)作为SerialNumber,Employee.name来自员工
你的结果就像
SerialNumber名称 1 abc 2 xyz
答案 1 :(得分:0)
我的数据库中有表格号码,我填写了以下查询。
CREATE TABLE [dbo].[NUMBERS] (
[number] INT IDENTITY (1, 1) NOT NULL
);
set Identity_insert dbo.Numbers oN
declare
@row_count int,
@target_rows int
set @target_rows = 1048576
set @row_count = null
while ( 1 = 1 ) begin
if ( @row_count is null ) begin
insert into Numbers ( [number] ) values ( 1 )
end
else begin
insert into Numbers ( [number] )
select [number] = [number] + @row_count
from Numbers
end
set @row_count = isnull( @row_count, 0 ) + @@rowcount
if ( @row_count >= @target_rows ) begin
break
end
end