首页 > 解决方案 > 在 SQL Server / Liquibase 中,INSERT 查询是否会自动创建一个没有 CREATE 架构的表(如果它不存在)?

问题描述

我正在使用 Liquibase 来管理 SQL Server 脚本(创建、更新、删除、更改等)。

我的要求是在从原始表 ( ) 中删除两列 ( , old_table_a) 之前创建一个备份表 ( ) 。column_1column_2table_a

新的备份表不需要主键,所以它只有两列,如下所示

old_table_a

  1. column_1(来自原始 table_a)
  2. column_2(来自原始 table_a)

如果我只写INSERT如下所示的查询,而没有CREATE TABLE old_table_a

INSERT INTO old_table_a (column_1, column_2)
    SELECT column_1, column_2
    FROM table_a

我在某个博客的某个地方读过这个,但找不到这个。

如果可能,请提供一些信息。

否则我知道通常的方法是创建新的备份表,然后用原始值填充新表。

标签: sql-serverinsertliquibase

解决方案


这可以通过 SELECT * INTO 来完成:

SELECT * INTO [NEWTABLE] FROM [OLDTABLE]

推荐阅读