我有一个包含近200个表的Access数据库。我想重命名其中许多字段(以便在分析R中的数据时更容易)。我发现你不能简单地重命名Access中的字段,但必须采用添加新列,传输数据,然后删除旧列的困难方法。
有没有办法使用SQL一次为多个表(或多个表和列)执行此操作?
我试过了:
ALTER TABLE * FROM MSysObjects ADD COLUMN colname NUMBER
以及:
ALTER TABLE table1, table2, table3... ADD COLUMN colname NUMBER
但似乎都不起作用。
这有可能吗?有谁知道如何编码?
答案 0 :(得分: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