在MS Access中重命名列的DDL是什么?

时间:2010-01-12 13:36:01

标签: ms-access ddl

在MS Access中重命名列的DDL是什么?有点像:

alter table myTable rename col1 to col2

对MSAccess 2000格式数据库不起作用。我正在使用带有MSAccess 2000格式数据库的OLEDB或ADO.NET,但感谢任何语法提示或建议如何使用ADO.NET以其他方式实现此目的。

6 个答案:

答案 0 :(得分:6)

我在家,目前无法测试,但我认为这应该有效。这个site包含有关它的信息。

ALTER TABLE thetable ALTER COLUMN fieldname fieldtype

编辑我对此进行了一些测试,奇怪的是,您无法重命名我能找到的列。 ALTER COLUMN语法仅允许更改类型。使用SQL,似乎有必要删除列然后重新添加。我想数据可以保存在临时表中。

alter table test drop column i;
alter table test add column j integer;

答案 1 :(得分:5)

我认为除了添加新列,从现有列更新然后删除“旧”列之外,我认为您无法执行此操作。

然而,在VBA中非常简单:

Set db = CurrentDb
Set fld = db.TableDefs("Table1").Fields("Field1")
fld.Name = "NewName"

答案 2 :(得分:5)

我的解决方案,简单但有效:

Dim tbl as tabledef
set tbl = currentdb.TableDefs("myTable")
tbl.fields("OldName").name = "Newname" 

答案 3 :(得分:3)

在VBA中,您可以执行此操作以重命名列:

Dim acat As New ADOX.Catalog
Dim atab As ADOX.Table
Dim acol As ADOX.Column
Set acat = New ADOX.Catalog
acat.ActiveConnection = CurrentProject.Connection
Set atab = acat.Tables("yourTable")
For Each acol In atab.Columns
    If StrComp(acol.Name, "oldName", vbTextCompare) = 0 Then
        acol.Name = "newName"
        Exit For
    End If
Next acol

答案 4 :(得分:2)

我之前已经研究过这个问题,并且没有可以为你做这件事的DDL语句。唯一的方法是添加新列,复制数据并删除旧列。

答案 5 :(得分:0)

Fionnuala使用DDL提供的答案是

ALTER TABLE [your table] ADD COLUMN [your newcolumn] Text(250)
UPDATE [your table] SET [your table].[newcolumn] = [your table].[old column]
ALTER TABLE [your table] DROP COLUMN [oldcolumn]

请注意,显然您可以为新列指定任何列类型,而Text(250)仅用于说明