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