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

C#通过ODBC+Jet4.0复制Access表并保留主键的方法问询

解决方案
  • 第一步:读取原表元数据
    用C# Odbc连接的GetSchema接口可以直接获取原表的列属性、主键字段信息,无需依赖DAO:
    列信息可以通过connection.GetSchema("Columns", new[] { null, null, "原表名" })获取,主键信息可以通过connection.GetSchema("Indexes", new[] { null, null, "原表名" })筛选出PRIMARY_KEY为true的条目即可。
  • 第二步:手动创建结构完全匹配的新表
    根据读取到的列信息构造CREATE TABLE语句,Jet 4.0支持标准的建表语法,示例:
    CREATE TABLE new_name (
        ID INT NOT NULL,
        字段1 VARCHAR(50),
        字段2 DATETIME
    )
    
  • 第三步:为新表添加主键约束
    Jet 4.0完全支持ALTER TABLE ADD CONSTRAINT语法添加主键,示例:
    ALTER TABLE new_name ADD CONSTRAINT PK_new_name PRIMARY KEY (ID)
    
  • 第四步:迁移原表数据
    不要使用SELECT * INTO,改用插入语句迁移数据:
    INSERT INTO new_name SELECT * FROM old_name
    

补充说明

  • SELECT * INTO语法本身的设计就是仅复制字段数据类型和行数据,不会复制主键、索引、约束、默认值等元数据属性,这是Jet引擎的固有特性,没有调整空间。
  • 整个流程完全基于ODBC标准接口和Jet 4.0原生支持的SQL语法,不需要引入DAO或者其他额外依赖,符合任务要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:06:01