带有 SQL 服务器后端的 MS Access 前端 - 整数键超出范围

MS Access frontend with SQL Server backend - integer key is out of range

我有一个 MS Access 解决方案可以访问 table 到 SQL 服务器的链接。 今天碰巧 table 中的一个密钥达到了 int.

的限制

所以我的第一个想法是将它从 int -> bigint 更改,但它似乎不可能,因为 ALTER 查询 return 几个错误。

第二个想法是克隆关键字段,删除原来的并克隆到新的关键字段。 这没有问题,但现在链接的 table 只显示 table 中所有字段的#deleted 值。 貌似MS Access在访问后台的时候使用了一些关系的key

也许有人知道在不丢失 MS Access 关系的情况下扩展/重置密钥的解决方案?

谢谢

MsAccess 在 table 设计中有一个“长整型”数字选项,它与 SQL 服务器的 INT 大小相同。见下文:

https://www.microsoft.com/en-us/microsoft-365/blog/2017/03/06/new-in-access-2016-large-number-bigint-support/

我发现了这个: “不幸的是,Access 无法将 BigInt 用作主键。您很可能需要将其更改为长整数。下面的文章适用于旧版本的 Access,但信息仍然适用:”(https://answers.microsoft.com/en-us/msoffice/forum/all/linked-table-showing-deleted-in-all-rows-and/d0451a78-08c1-4667-8677-6c61edcebcf1)

所以好像不能用bigint作为key。

我用 Google 搜索了这个主题,这是我找到的...

A​​ccess 可以处理 SQL 服务器中的 BigInt 数据类型。只是,它对此的处理有些失误。

就Access而言,BigInt是一个STRING。您必须在 Access 中将其作为字符串引用。幸运的是,这在 SQL 服务器端不是问题,因为 SQL 服务器对引用的数字很满意。 In-between 这两个(Access 和 SQL Server),根据我的经验,似乎存在从 Access 到 SQL Server 的 SQL 命令的文本传输,带有一些适度的方言翻译在后台自动进行(如果有人知道更好,请发表评论。)来自 SQL 服务器到访问的 BigInt 数据自动理解为字符串。

https://social.msdn.microsoft.com/Forums/office/en-US/fb6f99ec-2ed7-487b-ba39-0777a0b44d5f/the-bigint-problem?forum=accessdev

MS Access 是一项已有 30 年历史的技术。您真的想在 2022 年和未来使用它吗?