You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Access应用中查找允许重复的索引?

索引筛选与SQL Server迁移问题解决

一、自动筛选允许重复的索引

可以直接修改现有代码,添加判断条件来自动筛选出非主键且允许重复的索引(也就是既不是主键,也不是唯一约束的普通索引),不用手动排查。修改后的代码如下:

Const adSchemaIndexes As Long = 12
Dim cn As Object ' ADODB.Connection
Dim rs As Object ' ADODB.Recordset
Dim i As Long

Set cn = CurrentProject.Connection
Set rs = cn.OpenSchema(adSchemaIndexes)
With rs
    ' 如需查看所有字段名,取消下面三行注释
'    For i = 0 To (.Fields.Count - 1)
'        Debug.Print .Fields(i).Name
'    Next i
    Do While Not .EOF
        ' 筛选条件:非主键 且 非唯一索引(允许重复)
        If !PRIMARY_KEY = False And !UNIQUE = False Then
            Debug.Print !TABLE_NAME, !INDEX_NAME, "允许重复"
        End If
        .MoveNext
    Loop
    .Close
End With
Set rs = Nothing
Set cn = Nothing

判断逻辑说明:

  • PRIMARY_KEY = False:排除主键索引(主键默认强制不允许重复)
  • UNIQUE = False:排除唯一索引(唯一索引也不允许重复值)
    两者同时满足的就是你要找的“允许重复”的普通索引。

二、SQL Server迁移仅生成空表的排查方向

针对迁移后只生成空表的问题,你可以从这几个方向排查:

  • 确认迁移工具是否勾选了迁移数据的选项,不少工具默认只迁移表结构
  • 检查源Access表本身是否有数据,避免是空表迁移
  • 验证迁移账号的权限:是否有权限读取Access源表,以及向SQL Server目标库写入数据
  • 查看迁移过程的日志,是否存在数据类型不兼容、约束冲突等报错导致数据未写入
  • 若用自定义脚本迁移,检查脚本是否遗漏了数据插入的逻辑

内容的提问来源于stack exchange,提问作者srdjan sai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 20:15:42