1

我有一个包含近 200 个表的 Access 数据库。我想重命名其中许多的字段(以便在我分析 R 中的数据时更容易)。我发现您不能简单地重命名 Access 中的字段,而必须通过添加新列、传输数据、然后删除旧列的艰难方法来完成。

有没有办法使用 SQL 一次对多个表(或多个表和列)执行此操作?

我试过这个:

ALTER TABLE * FROM MSysObjects ADD COLUMN colname NUMBER

还有这个:

ALTER TABLE table1, table2, table3... ADD COLUMN colname NUMBER

但似乎都不起作用。

这可能吗?有谁知道如何编码?

4

1 回答 1

2

“有没有办法使用 SQL 一次对多个表(或多个表和列)执行此操作?”

不,这超出了 Access SQL 的能力。您将需要执行一系列语句,每个语句只能更改一个表。

您可以创建一个 VBA 过程来构建和执行这些语句。但是,如果您愿意使用 VBA,请考虑通过 DAO 对象模型简单地重命名列。

这是立即窗口中的一个简单示例:

? CurrentDb.TableDefs("tblFoo").Fields("some_text").Name
some_text
CurrentDb.TableDefs("tblFoo").Fields("some_text").Name = "some_text2"
? CurrentDb.TableDefs("tblFoo").Fields("some_text2").Name
some_text2
于 2013-11-05T16:42:04.577 回答