在列中插入默认值(访问数据库)
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 值,但我指定了默认值?