如何:创建“生成表”查询
更新:2007 年 11 月
可使用“生成表”查询将行复制到一个新表中,“生成表”查询对创建要使用的数据子集或在数据库之间复制表的内容非常有用。“生成表”查询与“插入结果”查询类似,但它创建要将行复制到其中的新表。
说明: |
---|
在 Oracle 中,“生成表”查询以 Create Table As Select 命令的形式实现。 |
当创建“生成表”查询时,指定:
新数据库表的名称(目标表)。
从中复制行的一个或多个表(源表)。可从单个表或联接表复制。
源表中要复制其内容的列。
排序顺序(如果您希望按特定顺序复制行)。
定义要复制的行的搜索条件。
“分组依据”选项(如果您希望仅复制汇总信息)。
例如,下列查询创建一个名为 uk_customers 的新表,并将 customers 表中的信息复制到该新表中:
SELECT *
INTO uk_customers
FROM customers
WHERE country = 'UK'
为了成功使用“生成表”查询:
数据库必须支持 SELECT...INTO 语法。
必须有在目标数据库中创建表的权限。
说明: |
---|
显示的对话框和菜单命令可能会与帮助中的描述不同,具体取决于您的当前设置或版本。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 Visual Studio 设置。 |
创建“生成表”查询
将一个或多个源表添加到“关系图”窗格中。
在“查询设计器”菜单中,指向“更改类型”,然后单击“生成表”。
在“生成表”对话框中,键入目标表的名称。查询和视图设计器不检查该名称是否已被使用,也不检查您是否有创建表的权限。
若要在另一个数据库中创建目标表,请指定完全限定表名,包括目标数据库的名称、所有者(如果需要)以及表名。
通过将其添加到查询中来指定要复制的列。有关详细信息,请参见如何:向查询添加列。列只有在添加到查询后才能复制。若要复制整行,请选择“*(所有列)”。
查询和视图设计器将您选择的列添加到“条件”窗格的“列”列中。
如果要按特定顺序复制行,请指定排序顺序。有关详细信息,请参见“对查询结果进行排序和分组”。
通过输入搜索条件指定要复制的行。有关详细信息,请参见如何:指定搜索条件。
如果未指定搜索条件,则将源表中的所有行都复制到目标表中。
说明: 当向“条件”窗格添加要搜索的列时,查询和视图设计器也会将该列添加到要复制的列的列表中。如果要在搜索中使用某列但不复制该列,请在表示表或表结构对象的矩形中,清除该列名旁边的复选框。
如果要复制汇总信息,请指定“分组依据”选项。有关详细信息,请参见汇总查询结果。
当执行“生成表”查询时,“结果”窗格中不报告结果。但是,会出现一条消息,指出已复制的行数。