Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 如何在SQL中向新表添加行号?_Sql Server 2005_Insert Into - Fatal编程技术网

Sql server 2005 如何在SQL中向新表添加行号?

Sql server 2005 如何在SQL中向新表添加行号?,sql-server-2005,insert-into,Sql Server 2005,Insert Into,我正在尝试使用已使用的现有表创建新表: INSERT INTO NewTable (...,...) SELECT * from SampleTable 我需要的是在开头或结尾添加一个记录编号,只要它在那里,这真的不重要 样本表 未来新表 有可能吗 这就是我最终的目标。。。除了现在,这些表的大小不同,因为我需要我的ErrorTemporaryTable有一个列,其中第一行有一个数字,该数字逐行递增 declare @counter int declare @ClientMessage v

我正在尝试使用已使用的现有表创建新表:

INSERT INTO NewTable (...,...)
   SELECT * from SampleTable
我需要的是在开头或结尾添加一个记录编号,只要它在那里,这真的不重要

样本表

未来新表

有可能吗

这就是我最终的目标。。。除了现在,这些表的大小不同,因为我需要我的ErrorTemporaryTable有一个列,其中第一行有一个数字,该数字逐行递增

declare @counter int
declare @ClientMessage varchar(255)
declare @TestingMessage carchar(255)
select @counter = (select count(*) + 1 as counter from ErrorValidationTesting)
while @counter <= (select count(*) from ErrorValidationTable ET, ErrorValidationMessage EM where ET.Error = EM.Error_ID)
begin
    insert into ErrorValidationTesting (Validation_Error_ID, Program_ID, Displayed_ID, Client_Message, Testing_Message, Create_Date)
    select * from ErrorTemporaryTable

    select @counter = @counter + 1

end
您可以将into子句与标识列一起使用:

这是更多的信息

您还可以使用标识字段创建表:

并插入:

insert into NewTable (col0, col1)
SELECT col0, col1   
FROM OldTable;

或者,如果您有NewTable,并且希望添加新列,请参见SO上的解决方案。

如果您使用的是SQL Server

INSERT INTO NewTable (...,...)
SELECT ROW_NUMBER() OVER (ORDER BY order_column), * from SampleTable
INSERT INTO newTable (idCol, c1,c2,...cn)
SELECT ROW_NUMBER() OVER(ORDER BY c1), c1,c2,...cn
FROM oldTable

尝试此查询以插入1,2,3。。。用列名替换MyTable和ID

DECLARE @myVar int
SET @myVar = 0
UPDATE
  MyTable
SET
   ID =  @myvar ,
   @myvar = @myVar + 1

“选择到”将创建一个新表。如果表已经存在,那么它可能是一个问题。是的,我知道,但我又添加了一个如何正确创建表的解决方案。
insert into NewTable (col0, col1)
SELECT col0, col1   
FROM OldTable;
INSERT INTO NewTable (...,...)
SELECT ROW_NUMBER() OVER (ORDER BY order_column), * from SampleTable
INSERT INTO newTable (idCol, c1,c2,...cn)
SELECT ROW_NUMBER() OVER(ORDER BY c1), c1,c2,...cn
FROM oldTable
DECLARE @myVar int
SET @myVar = 0
UPDATE
  MyTable
SET
   ID =  @myvar ,
   @myvar = @myVar + 1