如何:创建“生成表”查询

可使用“生成表”查询将行复制到一个新表中,“生成表”查询对创建要使用的数据子集或在数据库之间复制表的内容非常有用。“生成表”查询与“插入结果”查询类似,但它创建要将行复制到其中的新表。

说明说明

在 Oracle 中,“生成表”查询以 Create Table As Select 命令的形式实现。

当创建“生成表”查询时,指定:

  • 新数据库表的名称(目标表)。

  • 从中复制行的一个或多个表(源表)。可从单个表或联接表复制。

  • 源表中要复制其内容的列。

  • 排序顺序(如果您希望按特定顺序复制行)。

  • 定义要复制的行的搜索条件。

  • “分组依据”选项(如果您希望仅复制汇总信息)。

例如,下列查询创建一个名为 uk_customers 的新表,并将 customers 表中的信息复制到该新表中:

SELECT * 
INTO uk_customers
FROM customers
WHERE country = 'UK'

为了成功使用“生成表”查询:

  • 数据库必须支持 SELECT...INTO 语法。

  • 必须有在目标数据库中创建表的权限。

说明说明

对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您所使用的 Visual Studio 版本和您所使用的设置。有关更多信息,请参见 Visual Studio 设置

创建“生成表”查询

  1. 将一个或多个源表添加到“关系图”窗格中。

  2. 在**“查询设计器”菜单中,指向“更改类型”,然后单击“生成表”**。

  3. 在**“生成表”**对话框中,键入目标表的名称。查询和视图设计器不检查该名称是否已被使用,也不检查您是否有创建表的权限。

    若要在另一个数据库中创建目标表,请指定完全限定表名,包括目标数据库的名称、所有者(如果需要)以及表名。

  4. 通过将其添加到查询中来指定要复制的列。有关详细信息,请参见如何:向查询添加列。列只有在添加到查询后才能复制。若要复制整行,请选择**“*(所有列)”**。

    查询和视图设计器将您选择的列添加到“条件”窗格的**“列”**列中。

  5. 如果要按特定顺序复制行,请指定排序顺序。有关详细信息,请参见“对查询结果进行排序和分组”。

  6. 通过输入搜索条件指定要复制的行。有关详细信息,请参见 如何:指定搜索条件

    如果未指定搜索条件,则将源表中的所有行都复制到目标表中。

    说明说明

    当向“条件”窗格添加要搜索的列时,查询和视图设计器也会将该列添加到要复制的列的列表中。如果要在搜索中使用某列但不复制该列,请在表示表或表结构对象的矩形中,清除该列名旁边的复选框。

  7. 如果要复制汇总信息,请指定“分组依据”选项。有关详细信息,请参见 汇总查询结果

当执行“生成表”查询时,“结果”窗格中不报告结果。但是,会出现一条消息,指出已复制的行数。

请参见

其他资源

设计查询和视图

查询类型