Access 没有用于重命名列的内置命令行选项。
(并且您的示例看起来适用于 SQL Server,而且更多,因此它看起来是使用库存储过程函数为您执行此操作。所以,这看起来是 SQL Server 语法 - 而不是 MS Access。
如果要在 Access 中使用 DDL 重命名列?您必须创建一个具有所需名称的新列,然后将数据移动到这个新列,然后删除旧列。
Access 中所谓的 sql 'ddl' 命令实际上在很大程度上遵循 SQL 标准。
所以,在走这条路之前,我会考虑使用内置的 GUI + 表格设计器。 (它会为你做幕后的脏活)。
那么,您可以使用 DDL 重命名列吗?可以,但您必须分 3 步完成。
创建新列。
将数据从旧列复制到新列
删除旧列。
由于索引、可能的关系和其他问题,确实有人想在这里使用内置的表格设计器 + GUI。
但是,您可以在 Access 中使用一个过程 (VBA) 来执行此操作:
假设我们有一个非常糟糕的 City 列名称,名为 [The City]。
要重命名为 City,那么我们可以去:
Sub MyAlter()
' create the new column
CurrentDb.Execute "ALTER TABLE tblHotels ADD COLUMN City TEXT(50)", dbFailOnError
' copy the data
CurrentDb.Execute "UPDATE tblHotels SET City = [The City]", dbFailOnError
' drop the origonal column
CurrentDb.Execute "ALTER TABLE tblHotels DROP COLUMN [The City]", dbFailOnError
End Sub
请记住,Access 中任何带有空格的列 (yuk!!) 都需要用 [] 包围。这适用于 SQL 选择查询、更新查询、插入查询,当然还有用于修改表结构的 DDL 命令。
如果是一次性交易,那么当然只需使用访问权限,在设计模式下打开有问题的表,然后进行更改。
但是,如果你确实因为某些原因确实需要使用一个程序,那么上面的代码在一个访问代码模块中是可以使用的。
或者您可以启动查询生成器,切换到 SQL 视图模式,然后以这种方式输入上述原始 sql。
(您必须分别输入每个 sql 命令 - Access 查询生成器一次只允许一个 SQL 语句。
所以你可以先在上面的 SQL 中输入,点击“!”执行,然后执行另外两条 SQL 语句。
做好备份!!!
当然,任何使用旧列名的代码、任何查询、任何报告等都会中断。因此,更改现有应用程序中的列名是一项高风险的冒险(您可以并且将会破坏您现在拥有的大量代码、现有表单、现有报表和现有 SQL 查询)。
但是,如果这是一次性更新?然后我当然会使用表格设计器。它允许在不删除列的情况下重命名 - 并保留其他字段设置,例如索引、格式等。
上述建议的哪种方法最有意义将取决于您的特定“用例”。
最后但并非最不重要?您可以使用 VBA 代码和该代码中的表对象。这种方法可能是最好的。它不使用 SQL DDL,并且您可以更好地控制给定列的许多功能(必需,允许空值 - 列表还在继续)。这些设置中的大部分都可以在 DDL 中设置 - 但您需要花费大量时间搜索和查找这些设置。
总之?如果可能,我会在这里使用表格设计器。