我有两个单独的SQL Server 2005数据库(在同一服务器上)

  • 安全数据库
  • 主应用程序数据库
  • 安全数据库具有一个用户表,其中包含进行身份验证所需的所有内容。 -
  • 应用程序数据库具有一个人员表,其中包含扩展的用户详细信息。安全数据库用户表和应用程序数据库人表之间存在1-1映射。

  • 我想在用户和人员表之间强制执行映射。我假设外键不能跨数据库映射,所以我想知道如何执行以增强关系的完整性。

    最佳答案

    确实不支持跨数据库外键

        Msg 1763, Level 16, State 0, Line 2
        Cross-database foreign key references are not supported.
    

    如果您确实想在数据库端实现参照完整性,则必须依靠触发器。 (我不推荐)

    为了使代码更具可维护性,可以为要检查引用完整性的表创建同义词。
          CREATE SYNONYM myTable FOR otherdatabase.dbo.myTable;
    

    这将使“手动”检查更加容易,因为您不能在同义词上创建外键。

    09-10 06:52
    查看更多