【问题标题】:MS ACCESS How to drop a column with primary keyMS ACCESS 如何删除带有主键的列
【发布时间】:2009-10-30 10:16:41
【问题描述】:

我想从访问表中删除一个作为主键的列。 我该如何为此编写查询。

【问题讨论】:

    标签: ms-access


    【解决方案1】:

    您需要在一个查询中首先删除表上的主键索引:

    DROP INDEX PrimaryKey ON Table1
    

    然后您可以在第二个查询中删除该列:

    ALTER TABLE Table1 DROP COLUMN id
    

    【讨论】:

    • 我收到一条错误消息 no such index primarykey on table1
    • 您需要在删除 PK 之前删除该表参与的任何关系。
    • @David W. Fenton:您的意思不是说“您需要在删除 PK 之前删除 PK 参与的任何关系”吗? SQL 外键可以引用不是 PRIMARY KEY 的 UNIQUE 约束。 MS Access“关系”甚至不需要唯一约束(不要相信当您尝试保存没有通过设计器创建的 PK 的表时看到的消息,它是谎言,它是谎言)。
    【解决方案2】:

    您可以通过多种方式获取索引的名称。

    Dim RS As ADODB.Recordset
    
        Set RS = CurrentProject.Connection.OpenSchema _
            (12, Array(Empty, Empty, Empty, Empty, "Table1")) ''12=adSchemaIndexes
        RS.Filter = "PRIMARY_KEY = True"
        If Not RS.EOF Then
            Debug.Print RS.Fields("Index_Name")
        End If
    End Sub
    

    更多What is the name of the violating unique index constraint in dao / ms-access

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-07
      • 1970-01-01
      相关资源
      最近更新 更多