我正在使用 Microsoft SQL Server Migration Assistant v6(又名 SSMA)将数据库从 Access 更新到 SQL Server。我收到信息性消息“A2SS0029:索引名称‘名称’在转换期间已更改。”。
因为这些只是索引名称,所以这对我来说应该不会造成问题。但我确实想知道为什么必须更改名称。特别是因为我能够在迁移后手动创建具有给定名称的索引。
为什么要重命名索引名称?我是否认为这不会引起任何问题是错误的(假设我没有任何使用索引提示的查询,如果 Access 甚至可能的话)。
虽然有一些工具可能会对索引名称做出明智的决定(比如在存在实际冲突的情况下防止重复名称,并且在它真正重要的时候,比如当它们在同一个表中时),但似乎 SSMA只是为所有索引创建新的、唯一的名称。也许只有在它找到至少一个被重用的索引名称的情况下,不确定。我会对此进行测试,但我没有在任何地方安装 Access。
为什么要这样做?谁知道?极端保守主义?偏执狂?我认为这只是非常安全。
在某些情况下,重复名称会成为问题,但这些名称与以 结尾的一流实体隔离
sys.objects
,例如主键约束。索引名称仅在表级别强制为唯一(因为名称仅在 中公开sys.indexes
),而不是在数据库级别。