使用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
如果两个表是一样的,你可以使用这个查询:
INSERT INTO Persons_twin
SELECT * FROM Persons
不建议答案没有选择列列表或插入列列表。如果表 –
取出values
条款,并使用select
查询直接
INSERT INTO [dbo].[Persons_twin](ID, Name, Address)
SELECT ID, Name, Address FROM [dbo].[Persons]
你甚至可能创建的第二张表即时。在这种情况下,你就不必理会表的结构:
SELECT * INTO persons_twin FROM Persons
中的任何一个有变化,将来可能会导致问题您的第二个语法在“SQL SERVER”中是否有效? –
嗨@Prdp,赶上!不它不是。在此查找详细信息](https://msdn.microsoft.com/en-us/library/mt204041.aspx)。将编辑我的答案... – Shnugo
[SQL Server的副本从一个表中的所有行到另一种,即重复表(可能的重复http://stackoverflow.com/questions/2691441/sql-server-copy-all-rows-from-one-table-into-another-ie-duplicate-table) –
VALUES用于插入一行特定值。所以你将它与SELECT结合的方式是无效的。你使用一个或另一个,但不是两个。 –