在列中插入默认值(访问数据库)

Posted

技术标签:

【中文标题】在列中插入默认值(访问数据库)【英文标题】:Insert default values in a column (access db) 【发布时间】:2008-12-09 14:53:46 【问题描述】:

如何在 Access 中将默认值插入表的列中? 我使用这个指令:

ALTER TABLE Tabella ADD Campo Double DEFAULT 0
ALTER TABLE Tabella ADD Campo Double DEFAULT (0)
ALTER TABLE Tabella ADD Campo DEFAULT 0
ALTER TABLE Tabella ADD Campo DEFAULT (0)
ALTER TABLE Tabella ADD Campo SET DEFAULT 0
ALTER TABLE Tabella ADD Campo SET DEFAULT (0)

但所有这些都会导致错误。我该怎么做?

【问题讨论】:

【参考方案1】:

来自MSDN:

可以执行DEFAULT语句 只能通过 Access OLE DB 提供者和 ADO。它会返回一个 如果通过 访问 SQL View 用户界面。

Sooo...告诉我们更多关于你在做什么以及你是如何执行你的 SQL 的?

你为什么不使用表格设计器?

【讨论】:

【参考方案2】:

看到这个答案了吗?

SQL to add column with default value - Access 2003

【讨论】:

【参考方案3】:

您没有插入新的默认值,您需要更改现有的。

首先将 Access 切换为健全的 SQL 风格,如上面链接的答案,然后你可以说:

alter table Tabella alter column Campo Double DEFAULT 0

【讨论】:

【参考方案4】:

我有这个典型的 Access 函数来向 Access 表添加新字段 + 默认值:。如果表中不存在该字段,则添加该字段。

Public Function addNewField( _
    m_tableName as string, _
    m_fieldName As String, _
    m_fieldType As Long, _      'check syntax of .createField method for values'
    m_fieldLength As Long, _    'check syntax of .createField method for values'
    Optional m_defaultValue As Variant = Null)

Dim myTable As DAO.TableDef
Dim myField As DAO.Field

On Error GoTo addNewField_error

Set myTable = currentDb.TableDefs(m_tableName)
Set myField = myTable.CreateField(m_fieldName, m_fieldType, m_fieldLength)

If Not IsNull(m_defaultValue) Then
    myField.DefaultValue = m_defaultValue
End If

myTable.Fields.Append myField

Set myTable = Nothing
Set myField = Nothing

Exit Function

addNewField_error:
If Err.Number = 3191 Or Err.Number = 3211 Then
    'The field already exists or the table is opened'
    'nothing to do but exit the function'
Else
    debug.print Err.Number & " - " & Error$
End If

End Function

【讨论】:

以上是关于在列中插入默认值(访问数据库)的主要内容,如果未能解决你的问题,请参考以下文章

MySQL - 无法在列中插入 NULL 值,但我指定了默认值?

如何在代码中的sql表列中插入默认值

如何使用 Spark 数据框中的 lit 在列中插入值?

MySql 表列中未设置默认值

将行与标题进行比较,然后在列中插入值并在 VBA 中进行重复检查

插入数据并在列中添加前一行数据