CREATE TABLE AS 由 SQL:2003 标准声明.
查了Access的文档发现没有关于CREATE TABLE AS 得解释,应当是不支持。
在Access中用查询结果创建表可以用SELECT INTO来替代 实现。Access的文档中是这么说的:
----------------------------------------------
创建生成表查询 (生成表查询:一种查询(SQL 语句),它创建一个新表,然后通过从一个现有表中复制记录,在新表中创建记录(行)。)。
语法
SELECT field1[, field2[, ...]] INTO newtable [IN externaldatabase]
FROM source
SELECT...INTO 语句包含以下部分:
部分
说明
field1, field2
要复制到新表中的字段的名称。
newtable
要创建的表的名称。如果 newtable 与现有表同名,则发生可捕获错误。
externaldatabase
外部数据库 (外部数据库:要链接或导入到当前数据库的表的源,或要导出的表的目的地。)的路径。有关路径的说明,请参阅 IN 子句。
source
从中选择记录的现有表的名称。它可以是单个或多个表或查询。
说明
可以使用生成表查询来存档记录,生成表的备份副本,或者将副本导出到其他数据库,或作为某个特定时间段的数据的报表产生基础。例如,可以通过每个月运行相同的生成表查询来生成区域月销售报表。
注释
- 您可能需要定义新表的主键 (主键:具有唯一标识表中每条记录的值的一个或多个域(列)。主键不允许为 Null,并且必须始终具有唯一索引。主键用来将表与其他表中的外键相关联。)。创建表时,新表中的字段会继承查询的基础表中每个字段的数据类型 (数据类型:决定字段可拥有的数据类型的字段特征。数据类型包括 Boolean、Integer、Long、Currency、Single、Double、Date、String 和 Variant(默认)。)和字段大小,但不会传输其他字段或表属性。
- 若要将数据添加到现有表中,请转而使用 INSERT INTO 语句来创建追加查询 (追加查询:一种动作查询,它将查询结果集内的记录添加到现有表的尾部。)。
- 若要在运行生成表查询之前确定将要选择哪些记录,请先检查使用相同选择条件的 SELECT 语句所产生的结果。