[英]Building an auditing system; MS Access frontend on SQL Server backend
[英]MS Access frontend with SQL Server backend - integer key is out of range
我有一个 MS Access 解决方案,可以访问 SQL 服务器的链接表。 今天碰巧一个表中的key filed达到了int的限制。
所以我的第一个想法是将它从 int -> bigint 更改,但它似乎是不可能的,因为 ALTER 查询返回了几个错误。
第二个想法是克隆关键字段,删除原始字段并克隆到新的关键字段。 这没有问题,但现在链接表只显示表中所有字段的#deleted 值。 似乎MS Access在访问后端时使用了某些关系的密钥。
也许有人知道在不失去 MS Access 关系的情况下扩展/重置密钥的解决方案?
谢谢
MsAccess在表设计中有一个“长整型”数字选项,它与来自SQL Server的INT大小相同。 见下文:
我发现了这个:“不幸的是,Access 无法将 BigInt 用作主键。您很可能需要将其更改为长 integer。下面的文章适用于旧版本的 Access,但信息仍然适用:”( https://answers.microsoft.com/en-us/msoffice/forum/all/linked-table-showing-deleted-in-all-rows-and/d0451a78-08c1-4667-8677-6c61edcebcf1 )
所以似乎不可能使用 bigint 作为键。
我用谷歌搜索了这个主题,这就是我发现的……
Access 可以处理 SQL 服务器中的 BigInt 数据类型。 只是,它对此的处理有些失误。
就 Access 而言,BigInt 是一个 STRING。 您必须在 Access 中将其作为字符串引用。 幸运的是,这在 SQL 服务器端不是问题,因为 SQL 服务器对引用的数字很满意。 在这两者(Access 和 SQL Server)之间,根据我的经验,似乎有 SQL 命令的文本传输从 Access 到 SQL Server,在后台自动进行一些适度的方言翻译(如果有人知道的话,请发表评论。)从 SQL 服务器到访问的 BigInt 数据会自动理解为字符串。
MS Access 是一项已有 30 年历史的技术。 你真的想在 2022 年和未来使用它吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.