如何在VB.NET的OLEDB中重新索引主键表并加载数据库
主键重建索引与数据库加载实现
实现逻辑
主键约束本身关联唯一索引,若需重建主键索引,需先删除原有主键约束,再重新创建约束(自动同步重建索引),最后执行数据加载。
修改后的完整代码
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load ' 重建主键索引:删除旧约束 → 新建约束 Using cn As New OleDbConnection(connectionString) cn.Open() ' 处理约束不存在的情况,避免报错中断 Try Dim dropConstraintCmd As New OleDbCommand("ALTER TABLE RPD DROP CONSTRAINT idxMyTable", cn) dropConstraintCmd.ExecuteNonQuery() Catch ex As OleDbException ' 约束不存在时跳过,不影响后续流程 End Try ' 重新创建主键约束(自动重建关联索引) Dim createConstraintCmd As New OleDbCommand("ALTER TABLE RPD ADD CONSTRAINT idxMyTable PRIMARY KEY (PNM,NOD)", cn) createConstraintCmd.ExecuteNonQuery() End Using ' 执行数据库数据加载 LoadData() End Sub
关键注意点
- 必须先删除原有主键约束,否则重复创建会抛出约束已存在的异常
- 加入
Try-Catch块是为了兼容首次运行(无旧约束)的场景 - 主键约束重建后,其关联的唯一索引会自动同步重建,无需单独操作索引
内容的提问来源于stack exchange,提问作者roy
相关产品推荐
相关产品推荐

