如何在程序中改变表的结构?

cowbaby 2003-10-16 11:19:01
数据库:Access
首先看一段VFP的代码:
SELE 1
USE DATABASE\OUT1
SET uniq on
INDE on field1 + field2 to ind
COPY TO tmp
SET INDE TO
SET uniq off
INDE on field1 + field2 to ind

SELE 2
USE DATABASE\OUT2
ZAP
APPE from tmp

这段代码,在程序运行过程中改变了表的结构,tmp表里field1 + field2 是唯一的
但是后来又对表out1解除了uniq
我在VB中用到了这段代码,但是我无法在程序运行过程中改变表的结构
表OUT1中原来有一万条记录,其中field1 和 field列有很多是重复的,我在Access
中对有数据的表OUT1创建:索引:field1无重复,field2无重复
这时Access提示错误,不允许更改表的结构。
但是如果我在VB程序中不改变表OUT1的结构,那么
所得到的表OUT2的记录数目和表OUT1的记录数目是一样的(正确结果肯定是OUT2的记录数目肯定比OUT1少)
而那一段VFP的代码才是正确的,
请问有什么办法???
能使得VB中也能得到同样的结果??
...全文
42 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
cowbaby 2003-10-18
  • 打赏
  • 举报
回复
TO cuizm(射天狼):
非常感谢你的回答,很详细,
请问有两个字段组成的索引怎么写??
数据过滤Filter功能,怎么写??
cowbaby 2003-10-18
  • 打赏
  • 举报
回复
TO cuizm(射天狼):
非常感谢你的回答,很详细,
请问有两个字段组成的索引怎么写??
数据过滤Filter功能,怎么写??
射天狼 2003-10-18
  • 打赏
  • 举报
回复
此示例在员工表中增加 Currency 数据类型的一个工资字段。

Sub AlterTableX1()

Dim dbs As Database

'在您的计算机中修改此行使其正确指到 Northwind
'的路径。
Set dbs = OpenDatabase("Northwind.mdb")

'添加工资字段至员工表中,
'并且设置为 Currency 数据类型。
dbs.Execute "ALTER TABLE Employees " _
& "ADD COLUMN Salary CURRENCY;"

dbs.Close

End Sub

此示例从员工表中删除工资字段。

Sub AlterTableX2()

Dim dbs As Database

'在您的计算机中修改此行使其正确指到 Northwind
'的路径。
Set dbs = OpenDatabase("Northwind.mdb")

'从员工表中删除工资字段。
dbs.Execute "ALTER TABLE Employees " _
& "DROP COLUMN Salary;"

dbs.Close

End Sub

此示例在订单表中增加一外部键。这个外部键是基于员工编号字段和引用至员工的表中的员工编号字段。此示例中,在 REFERENCES 子句中并没有列出员工表的员工编号字段,这是因为员工编号为员工表的主键。

Sub AlterTableX3()

Dim dbs As Database

'在您的计算机中修改此行使其正确指到 Northwind 的路径。
Set dbs = OpenDatabase("Northwind.mdb")

'在订单表中添加外部键。
dbs.Execute "ALTER TABLE Orders " _
& "ADD CONSTRAINT OrdersRelationship " _
& "FOREIGN KEY (EmployeeID) " _
& "REFERENCES Employees (EmployeeID);"

dbs.Close

End Sub

此示例从订单表中删除外部键。

SubSub()

Dim dbs As Database

'在您的计算机中修改此行使其正确指到 Northwind 的路径。
Set dbs = OpenDatabase("Northwind.mdb")

'由订单表中删除 OrdersRelationship 外部键。
dbs.Execute "ALTER TABLE Orders " _
& "DROP CONSTRAINT OrdersRelationship;"

dbs.Close

End Sub
射天狼 2003-10-18
  • 打赏
  • 举报
回复
ALTER TABLE 语句

修改已用 CREATE TABLE 语句创建好的表设计。

注意 Microsoft Jet 数据库引擎并不支持使用 ALTER TABLE,或任何非 Microsoft Jet 数据库数据定义语言 (DDL) 语句。而由 DAO Create 方法取代。

语法

ALTER TABLE table {ADD {COLUMN field type[(size)] [NOT NULL] [CONSTRAINT index] |
CONSTRAINT multifieldindex} |
DROP {COLUMN field I CONSTRAINT indexname} }

ALTER TABLE 语句分为以下几个部分:

部分 说明
table 欲修改的表之名称。
field 欲在表内增加或删除的字段的名称。
type 字段的数据类型。
size 字段的字符长度 (仅文本字段及二进制字段)。
index 字段索引。关于如何构造字段索引的详细信息,请参阅 CONSTRAINT 子句主题。
multifieldindex 欲增加至表 中的多重字段索引的定义。关于如何构造此子句的详细信息,请参阅 CONSTRAINT 子句主题。
indexname 欲删除的多重字段索引的名称。
说明

使用 ALTER TABLE 语句,可用多种不同方法更改当前已存在的表:

?使用 ADD COLUMN 在表中添加新的字段。需要指定字段名、数据类型、还可以 (对文本和二进制字段)指定长度。 例如,下列语句在员工表中增加一 25 个字符的、名为 Notes 的文本字段:

ALTER TABLE Employees ADD COLUMN Notes TEXT(25)

也可以定义此字段的索引。关于单一字段索引的详细信息,请参阅CONSTRAINT 子句主题。

如果对一字段指定 NOT NULL,则在这字段中添加的新记录必须有有效的数据。

?使用 ADD CONSTRAINT 添加多重字段索引。关于多重字段索引的详细信息,请参阅 CONSTRAINT 子句主题。
?使用 DROP COLUMN 删除字段。只要指定欲删除的字段名即可。
?使用 DROP CONSTRAINT 删除多重字段索引。只要在 CONSTRAINT 保留字后面指定索引名即可。

注意

?不能同时添加或删除一个以上的字段或索引。
?可以使用 CREATE INDEX 语句添加单一或多重字段索引至一表,也可以用 ALTER TABLE 或 DROP语句来删除用 ALTER TABLE 或 CREATE INDEX 创建的索引。
?可以在单一字段上使用 NOT NULL,或在名为 CONSTRAINT 的子句中使用 NOT NULL,这个名为 CONSTRAINT 的子句应用于单一字段或名为 CONSTRAINT
的多重字段。不管怎样,只能在一字段上使用 NOT NULL 一次,否则将发生执行时的错误。
cowbaby 2003-10-18
  • 打赏
  • 举报
回复
用alter table tablename方法怎样创建索引和过滤数据??
cowbaby 2003-10-17
  • 打赏
  • 举报
回复
用alter table tablename方法怎样创建索引和过滤数据??
MSSQL 2003-10-16
  • 打赏
  • 举报
回复
ALTER TABLE example
可以修改表结构
sword281 2003-10-16
  • 打赏
  • 举报
回复
alter table tablename <add column_name data_type | modify column_name data_type>
zjcxc 2003-10-16
  • 打赏
  • 举报
回复
不怅VFP,UP
yunfeng007 2003-10-16
  • 打赏
  • 举报
回复
具体查sql server帮助中的alter table部分
cowbaby 2003-10-16
  • 打赏
  • 举报
回复
能具体一点吗?
Python编程基础教程本教程旨在帮助初学者了解Python编程的基础知识和高级应用。我们将介绍Python的各个方面,包括基础语法、数据类型、控制结构、函数、文件操作、面向对象编程、模块和包、异常处理、装饰器、生成器、迭代器以及协程。1. Python基础Python是一种解释型、交互式的编程语言。它具有简单易学的语法和丰富的库,使得开发过程既快速又高效。在开始学习Python之前,建议您先熟悉基本的计算机科学概念,例如变量、数据类型、运算符等。2. 数据类型Python具有多种数据类型,包括数字(整数和浮点数)、字符串、布尔值、列、元组、集合和字典等。这些数据类型在Python中有着广泛的应用,从简单的数值计算到复杂的数据处理。3. 控制结构控制结构是编程中的基本组成部分,它们决定了程序如何执行。Python支持条件语句(if-elif-else)和循环语句(for和while),可以根据程序中的特定条件和情况来选择适当的操作。4. 函数函数是封装一段代码的便捷方式,它们可以在需要时被调用。在Python中,您可以定义函数,并使用参数来传递数据。函数可以返回值,以便在调用它们时使用。5. 文件操作文件操作是编程中常见的任务之一。Python提供了许多内置的函数和方法来进行文件操作,如读取、写入和删除文件等。此外,Python还支持对文件进行高级操作,如读写二进制文件、文件锁定等。6. 面向对象编程面向对象编程是一种流行的编程范式,它使用类和对象的概念来构建复杂的系统。Python支持面向对象编程,您可以使用类来定义对象,并使用继承和多态等特性来扩展和定制对象的行为。7. 模块和包模块和包是Python中组织代码的重要工具。模块是一个包含Python代码的文件,而包则是一个包含多个模块的目录。通过使用模块和包,您可以轻松地组织和管理大型项目中的代码。8. 异常处理异常处理是Python中处理错误的方式之一。当程序中出现错误时,Python会抛出一个异常。通过使用try-except语句块,您可以捕获并处理这些异常,以确保程序的稳定性。9. 装饰器装饰器是Python中的高级功能之一,它允许您在函数或方法之间添加额外的功能,而不改变其原始实现。装饰器是一种强大的工具,可用于实现各种功能,如日志记录、性能分析等。10. 生成器生成器是Python中的一种特殊类型的迭代器。通过使用生成器函数和方法,您可以在需要时生成数据,而不是一次性生成所有数据。这使得生成器在处理大量数据时非常有用,因为它们可以节省内存空间。11. 迭代器和协程迭代器和协程是Python中的两个重要概念。迭代器允许您遍历容器类型的数据结构(如列和元组),而协程则是一种异步编程的方式,它允许您在程序中执行多个任务并发执行。这两个概念在处理大量数据和高性能应用程序方面非常有用。

7,764

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧