0
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?如何以快速插入速度顺序插入?

4

2 回答 2

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
于 2013-04-11T07:12:58.470 回答
0

据我所知,您需要添加/插入序列号为 1 到 10,00,000 的行(十个 lac 行)

你的两个命令似乎是选择命令而不是插入命令

确实需要在您的一个文件中添加序列号字段,或者您可以对任何现有表运行查询以获取带有序列号的结果

例如,表名:员工档案名称:姓名注意:没有像 SerialNumber 这样的档案存在

您可以运行命令以获取带有序列号的输出

例如选择 ROW_NUMBER() over (order by employee.name) as SerialNumber, Employee.name from employee

你的结果会像

序列号名称 1 abc 2 xyz

于 2013-04-11T07:00:34.137 回答