3

如何在 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)

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

4

4 回答 4

2

来自MSDN

DEFAULT 语句只能通过 Access OLE DB 提供程序和 ADO 执行。如果通过 Access SQL View 用户界面使用,它将返回错误消息。

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

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

于 2008-12-09T14:59:09.327 回答
1

看到这个答案了吗?

SQL 添加具有默认值的列 - Access 2003

于 2008-12-09T14:58:20.360 回答
0

我有这个典型的 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
于 2008-12-09T15:31:10.073 回答
0

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

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

alter table Tabella alter column Campo Double DEFAULT 0
于 2008-12-09T15:06:58.750 回答