【问题标题】:Using Multiple Memo Fields in an Access Database在 Access 数据库中使用多个备注字段
【发布时间】:2017-02-27 04:59:17
【问题描述】:

在 Microsoft Access 2010 Accdb 数据库中使用备注字段的优缺点是什么? 我正在更改 Access 2010 (accdb) 数据库以将包含 45,000 条记录的表中的 5 列转换为备忘录。然后,此数据将作为 varchar(max) 导入 SQL-Server。

我正在为数据创建新字段,然后从 text(255) 字段中复制数据,因为 VBA 中的“ALTER TABLE”和通过 Ms Access 表视图更改列都不起作用(“磁盘不足空间或内存”)。

这让我对使用这么多备忘录字段感到非常谨慎。最终最终将是 4 个表,每个表有 5 个备注字段。每个表总共有大约 100 多个字段,最多有 400,000 条记录。

我是否应该返回最终用户并告诉他们必须使用 text(255) 而不是多个备注字段,因为我怀疑该字段已被定义为备注“以防万一”。

【问题讨论】:

    标签: sql-server-2008 ms-access ms-access-2007


    【解决方案1】:

    我真的不认为 5 个备注字段很多,Access 只会为实际输入的值申请磁盘空间。虽然它可以容纳 1GB 的字符(2GB 的存储空间),但它可能只能显示 65K 左右的字符。一般来说,我不会过分担心使用备注字段,我认为这不是你的问题。

    如果备注字段已经是您的基表的一部分,您将使用 UPDATE 语句将数据从其他字段移入其中。如果要将表导出到 SQL,然后使列变大,则

    ALTER TABLE MyTable ALTER COLUMN MyColumn nvarchar(MAX)  
    

    应该可以正常工作。

    您可能需要考虑使用表键、记录键和单个备注字段创建单个关系表,然后通过以一对多的方式从基表。

    所以你会有这种类型的数据:

    TABLE          PK           MEMO
    ---------------------------------
    TableA         1            Note A
    TableA         1            Note B
    TableA         2            Note A
    TableB         1            Note A
    

    您究竟在哪里遇到了磁盘空间不足的错误?

    【讨论】:

    • 谢谢,我担心数据库可能存在长期问题。我不希望备忘录字段被充分使用,但由于我是从 excel 导入的,所以永远不知道。尝试通过设计模式更改字段时出现“磁盘空间或内存不足”。记录在案的补救措施是更改注册表,但我并不热衷于这样做。我终于写了一些VBA来创建一个新字段并将数据复制到最后。
    • 非常好...如果您遇到其他问题,请告诉我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多