使用SQL将整个数据从一个表复制到另一个表的存储过程

问题描述:

我有一个表Persons (ID, Name, Address)和另一个表Persons_twin (ID, Name, Address)其中我想从Persons复制整行。使用SQL将整个数据从一个表复制到另一个表的存储过程

哪个是复制数据的最短和最好的方法?以下是我尝试的代码,但没有执行任何操作。你的建议是最有价值的。谢谢。

BEGIN 
    -- SET NOCOUNT ON added to prevent extra result sets from 
    SET NOCOUNT ON; 

    -- Insert statements for procedure here 
    INSERT INTO [dbo].[Persons_twin](ID, Name, Address) 
    VALUES(SELECT ID, Name, Address FROM [dbo].[Persons]) 
END 
+2

[SQL Server的副本从一个表中的所有行到另一种,即重复表(可能的重复http://*.com/questions/2691441/sql-server-copy-all-rows-from-one-table-into-another-ie-duplicate-table) –

+0

VALUES用于插入一行特定值。所以你将它与SELECT结合的方式是无效的。你使用一个或另一个,但不是两个。 –

如果两个表是一样的,你可以使用这个查询:

INSERT INTO Persons_twin 
SELECT * FROM Persons 
+3

不建议答案没有选择列列表或插入列列表。如果表 –

取出values条款,并使用select查询直接

INSERT INTO [dbo].[Persons_twin](ID, Name, Address) 
SELECT ID, Name, Address FROM [dbo].[Persons] 

你甚至可能创建的第二张表即时。在这种情况下,你就不必理会表的结构:

SELECT * INTO persons_twin FROM Persons 
+0

中的任何一个有变化,将来可能会导致问题您的第二个语法在“SQL SERVER”中是否有效? –

+0

嗨@Prdp,赶上!不它不是。在此查找详细信息](https://msdn.microsoft.com/en-us/library/mt204041.aspx)。将编辑我的答案... – Shnugo