【问题标题】:Having Foreign Key relations between two different columns in two different databases在两个不同数据库中的两个不同列之间具有外键关系
【发布时间】:2012-02-26 01:11:57
【问题描述】:

我有两个数据库 A 和 B。A 有 tableA 和 columnA 类似地 B 有 tableB 和 coulmnB。我可以在这两列之间建立 Primary , Foreign Key 关系吗? 两个数据库将位于同一个 Sql Server 2008 R2 实例中。

我使用的是 Sql Server 2008 R2 Express Edition。

此外,如果这在 Express 版本中不可用,那么它是否在其他版本中可用,例如企业版

【问题讨论】:

标签: sql sql-server-2008r2-express


【解决方案1】:

不可能,但您可以通过触发器实现自定义机制

问题是 - 你永远不能说你的备份是一致的

由于使用 FOREIGN KEY 约束实现的参照完整性保证了您的所有数据在事务结束后都是有效的,并且您的备份始终保持一致。

使用不同的数据库和基于触发器的参考。完整性,您永远不能说两个数据库同时备份并处于一致状态。

【讨论】:

【解决方案2】:

在您的场景中,您有 2 个数据库 - 无法在数据库之间创建 FK(即使在同一个 SQL 服务器实例中)。

即使您在一个数据库中拥有这些表,也会导致循环引用。

这能回答你的问题吗?

【讨论】:

  • 即使您在一个数据库中拥有这些表,也会导致循环引用。 ——这个没看懂。循环引用是什么意思
  • 对不起,我应该更具体一些。表 A 将引用表 B,反之亦然 - 这是不可能的,因为您无法将任何记录添加到这些表中。
【解决方案3】:

根据 cmets。不,很遗憾你不能。

你可以让表在同一个数据库中但不同的模式?这将允许外键关系。

【讨论】:

  • 你可以让表在同一个数据库中但不同的模式?这将允许外键关系。->我可以找到的任何 totorials 或示例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-13
  • 1970-01-01
  • 1970-01-01
  • 2011-05-26
  • 1970-01-01
  • 2018-09-15
相关资源
最近更新 更多