我是一家公司的新人,我受雇管理一套基于 Excel 和 Access 的工具到新环境的切换。
这些当前正在与 SQL Server 2012 交互,部分迁移涉及迁移到 SQL Server 2019。
虽然数据检索基本上不受影响,但我发现的问题是 Access (MS 365) 无法再更新或删除链接表中的数据,因为数据库服务器上的基础表没有主键字段。
我通过向表中添加一个标识字段来验证这一点,该字段允许 Access 修改和删除记录。
从根本上说,表应该有一个PK,但我的问题是为什么这在以前的环境中有效,但在新环境中失败。
追溯性地向现有表添加标识字段将解决 Access 写入/删除的问题,但可能(几乎肯定会)导致在其他地方使用“SELECT *”查询的连续问题,我希望能够解释为什么现在出现这个问题。
当您链接没有 PK 的 ODBC 表时,您会看到选择唯一记录标识符对话框,提示您选择唯一标识表中每条记录的一个或多个字段。
如果表格有这样的字段(或组合),您可以选择此项,链接的表格将是可编辑的。
我认为这就是在旧环境中完成的方式。您可以在设计视图中打开链接表并检查 Access 是否显示 PK 的“钥匙”图标。
但请注意:如果所选字段实际上并不唯一,这将对您的数据造成严重破坏。
因此强烈建议在SQL Server端进行实际的PK,可以是现有列的组合,也可以是新的Identity列。
您还可以通过编程方式在 Access 中设置 PK:https://stackoverflow.com/a/32316883/3820271