我还在 Stack Overflow 上问过这个问题(如果这违反了协议,我深表歉意)。
我正在将 MS Access 数据库迁移到 MS SQL Server,并使用 SQL Server Management Studio (SSMS) 对其进行维护。
Access 数据库具有通过中间表连接同一表的两个实例的关系,如以下访问关系图所示。
这种实体关系可以表示组织结构。
Access 允许您使用拖放操作创建上述关系,并自动添加后缀 _1 来区分添加的实例。
SQL 是:
SELECT [T-Organisation].[Organisation Unit Id],
[T-Organisation].[Organisation UnitName],
[T-Organisation_1].[Organisation Unit Id],
[T-Organisation_1].[Organisation UnitName]
FROM ([T-Organisation]
INNER JOIN [T-OrganisationSubsidiary] ON
[T-Organisation].[Organisation Unit Id] = [T-OrganisationSubsidiary].[Parent Organisation Unit])
INNER JOIN [T-Organisation] AS [T-Organisation_1] ON
[T-OrganisationSubsidiary].[Subsidiary Organisation Unit] = [T-Organisation_1].[Organisation Unit Id];
除非我遗漏了某些内容,否则 SSMS 不允许我像 Access 那样将表的副本添加(拖放)到关系图中。这是否意味着我需要创建 T-Organization 表的物理副本并手动命名它,例如 T-Organization_1 或者是否有更好的解决方案?