Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 使用SQL将整个数据从一个表复制到另一个表的存储过程_Sql Server_Sql Server 2012 - Fatal编程技术网

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

Sql server 使用SQL将整个数据从一个表复制到另一个表的存储过程,sql-server,sql-server-2012,Sql Server,Sql Server 2012,我有一个表Persons(ID,Name,Address)和另一个表Persons\u twin(ID,Name,Address),我想在其中从Persons复制整行 复制数据的最短和最好的方法是什么?下面是我尝试过的代码,但没有执行。你的建议很有价值。多谢各位 BEGIN -- SET NOCOUNT ON added to prevent extra result sets from SET NOCOUNT ON; -- Insert statements for

我有一个表
Persons(ID,Name,Address)
和另一个表
Persons\u twin(ID,Name,Address)
,我想在其中从
Persons
复制整行

复制数据的最短和最好的方法是什么?下面是我尝试过的代码,但没有执行。你的建议很有价值。多谢各位

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

不建议在没有选择列列表或插入列列表的情况下回答。当两个表中的任何一个发生更改时,这可能会导致将来出现问题。可能的值副本用于插入一行特定值。因此,将其与SELECT组合的方式是无效的。您可以使用其中一种,但不能同时使用两种。您的第二种语法在SQL SERVER中是否有效?您好@Prdp,很好!不将编辑我的答案。。。