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ステートメントは、AccessOLEDBプロバイダーとADOを介してのみ実行できます。Access SQL Viewユーザーインターフェイスを介して使用すると、エラーメッセージが返されます。

すっごく...あなたがしていることとSQLをどのように実行しているかについて詳しく教えてください。

そして、なぜあなたはテーブルデザイナーを使わないのですか?

于 2008-12-09T14:59:09.327 に答える
1

この答えを見ますか?

デフォルト値で列を追加するSQL-Access2003

于 2008-12-09T14:58:20.360 に答える
0

新しいデフォルト値を挿入するのではなく、既存の値を変更する必要があります。

上記のリンクの回答のように、最初に Access を適切な SQL フレーバーに切り替えてから、次のように言うことができます。

alter table Tabella alter column Campo Double DEFAULT 0
于 2008-12-09T15:06:58.750 に答える
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 に答える