什麼是DDL重命名MS Access中的列?沿着線的東西:MSAccess中重命名DDL的DDL是什麼?
alter table myTable rename col1 to col2
不爲MSACCESS 2000格式的數據庫。我使用的是帶有MSAccess 2000格式數據庫的OLEDB或ADO.NET,但會感謝關於如何以某種其他方式使用ADO.NET實現此功能的語法或建議的任何提示。
什麼是DDL重命名MS Access中的列?沿着線的東西:MSAccess中重命名DDL的DDL是什麼?
alter table myTable rename col1 to col2
不爲MSACCESS 2000格式的數據庫。我使用的是帶有MSAccess 2000格式數據庫的OLEDB或ADO.NET,但會感謝關於如何以某種其他方式使用ADO.NET實現此功能的語法或建議的任何提示。
我在家,目前無法測試這個,但我認爲這應該有效。這site有關於它的信息。
ALTER TABLE thetable ALTER COLUMN fieldname fieldtype
編輯我這個測試了一下,奇怪的是,你不能重命名列,我可以找到。 ALTER COLUMN
語法只允許更改類型。使用SQL,似乎有必要刪除該列,然後將其添加回來。我想這些數據可以保存在臨時表中。
alter table test drop column i;
alter table test add column j integer;
我不相信你可以做到這一點,除了通過追加一個新列,從現有的更新列,然後刪除「老」列。
它是,但是,相當簡單的VBA:
Set db = CurrentDb
Set fld = db.TableDefs("Table1").Fields("Field1")
fld.Name = "NewName"
我以前研究過這並沒有DDL語句,可以爲你做這個。唯一的方法是添加一個新列,複製數據並刪除舊列。
在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
我的解決方案,簡單而有效:
Dim tbl as tabledef
set tbl = currentdb.TableDefs("myTable")
tbl.fields("OldName").name = "Newname"
通過DDL Fionnuala提供的答案是
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)僅用於illustrati在
...當然使用DAO。 DAO是控制Jet的自然界面,而DDL可以很方便,但Jet/ACE從未得到過很好的支持。我從來沒有關心過,因爲我沒有通過代碼來改變我的模式(我手工完成,因爲它是在藍色月亮中發生的事情 - 編寫腳本並測試它比花費時間更長去做就對了)。 – 2010-01-12 22:47:15