【问题标题】:How can I modify the schema for an Access DB in C#如何在 C# 中修改 Access DB 的架构
【发布时间】:2011-01-26 02:06:46
【问题描述】:

我在这里有一个项目,目标是将多个 Access 数据库合并到一个 SQL Server 数据库中。 Access DB 中的一些记录是自动编号的,并且在所有 DB 中不会是唯一的。

我们目前正致力于以编程方式将这些自动编号字段修改为编号字段。在将所有这些表附加到 SQL 服务器之前,调整和允许访问级联这些更改。

我知道 getSchema() 用于访问,但我们可以修改架构以从字段中删除自动编号吗?

如果做不到这一点,是否有人对如何完成我们的任务有任何绝妙的想法?或者做过类似的事情?

问候

【问题讨论】:

    标签: c# sql ms-access merge


    【解决方案1】:

    您可以使用 DDL:

    ALTER TABLE Table1 ALTER COLUMN id long
    

    编辑重新评论

    在更改字段类型之前,您需要删除关系,但主索引可以:

    ALTER TABLE Table2 DROP CONSTRAINT Table1Table2 
    

    约束可能会在这些行中被称为某些东西,但您可以使用 ADOSchemas 来获取约束(关系)的名称。

    【讨论】:

    • 这是否适用于包含现有数据的表? col在哪里PK? FK 是另一张桌子的吗?
    • 我已添加注释。如果您要从自动编号变为数字,则现有数据很好,但反之则不行。
    【解决方案2】:

    既然您要告别 MS-Access,为什么不手动编辑表格(右键单击相关表格并设计)?它可能比编写代码来做同样的事情要快。

    如果您真的需要编程方式来做事,ADOX 是一个相当成熟的用于操作模式对象的 API,它对于 MS-Access 来说功能最完整。它是 COM,但您可以使用 COM 互操作。

    在这个页面中隐藏了一些使用 ADOX 添加列的示例 http://www.codeguru.com/cpp/data/mfc_database/ado/article.php/c4343#_Toc1461080

    【讨论】:

    • 我们有大约 60-100 毫秒的访问数据库要合并,以编程方式效率更高。谢谢,将查看您的链接
    猜你喜欢
    • 2015-11-18
    • 2010-11-11
    • 2013-03-30
    • 1970-01-01
    • 1970-01-01
    • 2023-01-09
    • 2019-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多