如何使用键列复制表中的行

时间:2015-04-03 07:45:05

标签: sql sql-server

如何在自动增量键列中复制行

INSERT [Table] SELECT * FROM [Table] where [Table].[id]=7

无法正常工作

1 个答案:

答案 0 :(得分:1)

想象一下,您的AUTO_INCREMENT(在SQL-Server它的IDENTITY)列中的名称为col1,因此您可以尝试(不在选择列表中包含它) ):

INSERT INTO [Table1] (col2, col3, col4) -- specify all columns except col1
SELECT col2, col3, col4 -- specify all columns except col1
FROM [Table2] 
WHERE [Table2].[id]=7

以下示例正常工作:

CREATE TABLE #Temp1 
(
    ID INT NOT NULL IDENTITY (1,1),
    Name NVARCHAR(40)
)
GO
CREATE TABLE #Temp2 
(
    ID INT NOT NULL IDENTITY (1,1),
    Name NVARCHAR(40)
)
GO
INSERT INTO #Temp1 (Name) VALUES ('Lisa'), ('Jesicca'), ('John')
GO
INSERT INTO #Temp2 (Name)
SELECT Name
FROM #Temp1
GO
SELECT * FROM #Temp1
GO
DROP TABLE #Temp1
DROP TABLE #Temp2