📜  tsql 复制表 - SQL (1)

📅  最后修改于: 2023-12-03 15:05:38.155000             🧑  作者: Mango

TSQL 复制表 - SQL

在数据库开发中,经常需要将一个表的数据复制到另一个表中。TSQL 提供了多种复制表的方法,包括 SELECT INTO 语句、INSERT INTO 语句和 SELECT INTO 嵌套 INSERT INTO 语句。以下是详细介绍:

SELECT INTO 语句

SELECT INTO 语句类似于创建一个新表并将数据插入其中。它将指定的列和数据从一个表复制到另一个表中。以下是一个示例:

SELECT *
INTO [新表名]
FROM [旧表名]
WHERE [条件]

例如,如果需要将表“oldTable”中的所有数据复制到名为“newTable”的新表中,可以使用以下语句:

SELECT *
INTO newTable
FROM oldTable
INSERT INTO 语句

INSERT INTO 语句将数据从一个表复制到另一个表中,而不是创建一个新表。可以使用 INSERT INTO 语句将数据插入现有表中的指定列。以下是一个示例:

INSERT INTO [目标表名] ([目标列1], [目标列2], ...)
SELECT [源表列1], [源表列2], ...
FROM [源表名]
WHERE [条件]

例如,如果需要将表“oldTable”中的所有数据复制到现有表“newTable”的列“col1”中,可以使用以下语句:

INSERT INTO newTable (col1)
SELECT col1
FROM oldTable
SELECT INTO 嵌套 INSERT INTO 语句

SELECT INTO 嵌套 INSERT INTO 语句将数据从一个表复制到另一个表中,同时可以灵活地指定要插入的列。以下是一个示例:

INSERT INTO [目标表名] ([目标列1], [目标列2], ...)
SELECT [源表列1], [源表列2], ...
FROM (
    SELECT [源表列1], [源表列2], ...
    FROM [源表名]
    WHERE [条件]
) AS [子查询别名]

例如,如果需要将表“oldTable”中的所有数据复制到现有表“newTable”的列“col1”和“col2”中,并仅包含具有特定值的行,则可以使用以下语句:

INSERT INTO newTable (col1, col2)
SELECT col1, col2
FROM (
    SELECT col1, col2
    FROM oldTable
    WHERE col3 = '特定值'
) AS subquery

以上是 TSQL 中复制表的三种常见方法,可以根据需要选择最适合的方法。