use*_*421 3 sql-server-2005 insert-into
我正在尝试使用已经使用的现有表创建一个新表:
INSERT INTO NewTable (...,...)
SELECT * from SampleTable
Run Code Online (Sandbox Code Playgroud)
我需要的是在开头或结尾添加一个记录号,只要它在那里就没关系.
样本表
Elizabeth RI 02914
Emily MA 01834
Run Code Online (Sandbox Code Playgroud)
预期新表
1 Elizabeth RI 02914
2 Emily MA 01834
Run Code Online (Sandbox Code Playgroud)
那可能吗?
这就是我最终拍摄的内容......除了现在这些表格的大小不同,因为我需要我的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
Run Code Online (Sandbox Code Playgroud)
INSERT INTO NewTable (...,...)
SELECT ROW_NUMBER() OVER (ORDER BY order_column), * from SampleTable
Run Code Online (Sandbox Code Playgroud)
您可以使用into
带有IDENTITY
列的子句:
SELECT IDENTITY(int, 1,1) AS ID_Num, col0, col1
INTO NewTable
FROM OldTable;
Run Code Online (Sandbox Code Playgroud)
这是更多信息
您还可以使用identity
字段创建表:
create table NewTable
(
id int IDENTITY,
col0 varchar(30),
col1 varchar(30)
)
Run Code Online (Sandbox Code Playgroud)
并插入:
insert into NewTable (col0, col1)
SELECT col0, col1
FROM OldTable;
Run Code Online (Sandbox Code Playgroud)
或者如果您有NewTable并且想要添加新列,请参阅此解决方案.
归档时间: |
|
查看次数: |
34565 次 |
最近记录: |