加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 外键在不同数据库的表上

发布时间:2020-12-12 16:10:51 所属栏目:MsSql教程 来源:网络整理
导读:我在SQL Server中有两个数据库,我有一个公用表,这两个数据库是一个重要的大表,它将外键保存到其他表.问题是Table在DatabaseA中,我需要从DatabaseB中引用外键到这个表. 我知道SQL不支持跨数据库引用完整性,所以最好的方法是什么?我正在考虑将两个数据库组合成
我在SQL Server中有两个数据库,我有一个公用表,这两个数据库是一个重要的大表,它将外键保存到其他表.问题是Table在DatabaseA中,我需要从DatabaseB中引用外键到这个表.

我知道SQL不支持跨数据库引用完整性,所以最好的方法是什么?我正在考虑将两个数据库组合成单个数据库,除了复杂性的增加,这并不重要.

有什么建议么?

解决方法

我会避免这样做,如果我可以 – 你可以只保留两个表在一个数据库和使用FK?

父表和子表位于不同的数据库中.

虽然在这种情况下您不能使用外键,但有解决方法 – 您可以使用包含检查约束的触发器或UDF.无论哪种方式,您的数据完整性都不完全是水密的:如果与父表的数据库崩溃,并从备份恢复,您可能会很容易地遇到孤儿.

父子关系是由触发器强制执行的.

触发器不触发时,有以下几种情况,如:

·桌子被丢弃

·表被截断.

·嵌套和/或递归触发器的设置可防止触发器触发.

触发器也可能不正确.无论哪种方式,您的数据库中都可能会有孤儿.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读