【问题标题】:Can I add tables or fields to access back end file while others are using the front end?当其他人使用前端时,我可以添加表或字段来访问后端文件吗?
【发布时间】:2018-04-18 13:49:54
【问题描述】:

之前有人问过类似的问题,但没有回答我的问题。我在 Access 中有一个带有后端和前端的拆分数据库。我有 10 个用户。我希望在用户使用前端时将数据附加到现有表或添加新字段。我在之前的帖子中看到不建议编辑实时后端。

VBA 和 SQL 有没有办法通过前端向后端添加字段或追加数据,而不会损坏数据库?

另外,如果我将后端移至 SQL Server,我能否在使用前端时在后端添加数据或编辑数据?

【问题讨论】:

  • 我对 Access 的了解还不够,但您最后一个问题的答案是肯定的:SQL Server 是一个,咳咳,合适的数据库系统,并且都支持并发修改和查询。 SQL Server 将通过采取适当的锁来做到这一点,因此如果表在持续使用并且您需要更改表结构,则仍然需要安排停机时间,但除非硬件故障或严重错误,否则数据库永远不会损坏。这是“专业”数据库的一大卖点。

标签: sql sql-server ms-access vba


【解决方案1】:

您可以使用 SQL Server 很好地做到这一点。如果您添加新列,那么现在又会出现问题。请注意,在您重新链接前端之前,FE 不会看到新表或新列。实际上,这样做非常安全。

【讨论】:

    【解决方案2】:

    我们可以这样做,但不建议这样做。如果表上存在任何脚本/过程会失败的依赖项。

    使用动态SQL创建过程,并根据需求在前端代码中调用该过程

    Create procedure Name2
    AS
    BEGIN
    DECLARE @sql nvarchar(max)
    SET @SQL ='ALTER Table Temp
       ADD  Name INT '
    
    EXEC(@SQL)
    
    END
    
    EXEC Name2
    

    【讨论】:

      【解决方案3】:

      我同意给出的其他答案 - 您可以将新表或新数据添加到正在使用的访问前端的 sql 后端。向活动表添加新字段将是最危险的。所有这些操作都应该没问题,但总是存在依赖关系或其他导致损坏的情况的可能性。所以最好的答案是,你需要评估你的具体情况。访问系统对您的 10 个用户是否重要?因此,如果您在后端的工作确实导致了损坏,那么当您从备份中恢复它时,它们会在短时间内没有问题吗?如果您必须恢复到备份,他们是否可以轻松地重新创建他们丢失的工作?如果两者都是,您可以在他们使用它时进行工作,但如果不是,那么您需要在前端不使用时进行。其次,在您对后端进行任何工作之前,请始终记住检查最近的备份是否是 a) 实际上是最近的并且 b) 是否按预期恢复。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-25
        • 1970-01-01
        • 2019-02-11
        • 1970-01-01
        • 1970-01-01
        • 2021-05-09
        • 2019-07-01
        • 1970-01-01
        相关资源
        最近更新 更多