在MS Access中重命名列的DDL是什么?有点像:
alter table myTable rename col1 to col2
对MSAccess 2000格式数据库不起作用。我正在使用带有MSAccess 2000格式数据库的OLEDB或ADO.NET,但感谢任何语法提示或建议如何使用ADO.NET以其他方式实现此目的。
答案 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)仅用于说明