设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

使用SQL DDL创建、删除表和关系

1970-1-1 08:00| 发布者: Microsoft| 查看: 1884| 评论: 0

摘    要:Microsoft Knowledge Base Article - Q116145
  Microsoft Access包含一个数据定义语言(DDL),你可以用来建立、删除表和关系。这些操作也可以通过VBA(或ACCESS 2.0中ACCESS Basic)使用数据访问对象(DAO)来执行。本文讨论在DLL中的一些操作。
  注: 本文中的所有例示语句可以加到Microsoft Access查询中来运行。使用数据定义语句,创建一个新的查询,然后点击查询菜单中的SQL特定查询中的数据定义,然后在定义查询窗口中输入你数据定义语句,通过点击查询菜单的运行来运行。

正    文:

  建立一个带有自动编号数据类型主键(PrimaryKey)字段Id和一个文本数据类型长度为10的字段MyText的表,可以在查询的数据定义查询窗口输入下列语句:
  注:在下列查询举例中,每行最后的下划线(_)是用来续行的。在创建查询时,请移除。

   CREATE TABLE Table1 (Id COUNTER CONSTRAINT PrimaryKey PRIMARY KEY, _
   MyText TEXT (10))

  不需要主键(PrimaryKey)也能通过运行下面的查询语句创建关系中另一侧的外键(Foreign Key)。该查询创建一个长整数类型字段Id和一个文本类型字段MyText(默认长度为255)的表。

   CREATE TABLE Table2 (Id LONG, MyText TEXT)

  在创建这两个表后,运行下面的查询在Table1和Table2之间来创建一个一对多的关系,其中Table1为关系的主侧。

   ALTER TABLE Table2 ADD CONSTRAINT Relation1 FOREIGN KEY ([Id]) _
   REFERENCES Table1 ([Id])

  要删除这两个表之间关系,可以使用下面的查询: 

   ALTER TABLE Table2 DROP CONSTRAINT Relation1

  要删除表Table1, 可以运行下面的查询: 

   DROP TABLE Table1

  要删除表Table2, 可以运行下面的查询: 

   DROP TABLE Table2

  除了通过查询来运行这些语句名,还可以将DDL语句以代码的形式在RunSQL中运行,也可以通过下面的过程来模拟。

   Sub ExecuteSQLDDL (SQLString As String)
      Dim db As Database, qd As QueryDef
      Set db = DBEngine.Workspaces(0).Databases(0)
      Set qd = db.CreateQueryDef("")
      qd.SQL = SQLString
      qd.Execute
      db.Close
   End Sub

调用这个过程,使用下面的语法: 

   ExecuteSQLDDL "DROP TABLE Table1"

最新评论

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-28 04:25 , Processed in 0.070150 second(s), 16 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部