如何将一行从一个SQL Server表复制到另一个

如何将一行从一个SQL Server表复制到另一个

How to copy a row from one SQL Server table to another

我有两个相同的表,需要将表中的行复制到另一个表。 最好的方法是什么? (我需要以编程方式仅复制几行,而无需使用批量复制实用程序)。


只要没有标识列,您就可以

1
2
3
INSERT INTO TableNew
SELECT * FROM TableOld
WHERE [Conditions]

替代语法:

1
2
3
4
INSERT tbl (Col1, Col2, ..., ColN)
  SELECT Col1, Col2, ..., ColN
  FROM Tbl2
  WHERE ...

选择查询可以(当然)包括表达式,case语句,常量/文字等。


Jarrett的答案将创建一个新表。

Scott的答案将插入具有相同结构的现有表中。

您也可以插入具有不同结构的表中:

1
2
3
4
INSERT Table2
(columnX, columnY)
SELECT column1, column2 FROM Table1
WHERE [Conditions]

1
2
3
INSERT INTO DestTable
SELECT * FROM SourceTable
WHERE ...

在SQL Server中工作


1
SELECT * INTO < new_table > FROM < existing_table > WHERE < clause >


推荐阅读