Swe*_*ter 15 sql t-sql sql-server sql-server-2005
我在SQL Server中有两个数据库,我有一个公用表,两个数据库都是一个重要的大表,它将外键保存到其他表中.问题是Table在DatabaseA中,我需要从DatabaseB将外键引用到该表.
我知道SQL不支持跨数据库引用完整性,那么实现这一目标的最佳方法是什么?我正在考虑将两个数据库组合成一个数据库 - 除了复杂性的增加之外没有关系.
有什么建议?
如果可以的话,我会避免这样做 - 你能把两个表保存在一个数据库中并使用FK吗?
父表和子表位于不同的数据库中.
虽然在这种情况下不能使用外键,但有一些解决方法 - 您可以使用包含在检查约束中的触发器或UDF.无论哪种方式,您的数据完整性都不是完全无懈可击的:如果包含父表的数据库崩溃并从备份中恢复它,您可能很容易就会遇到孤儿.
父子关系由触发器强制执行.
触发器不会触发时有很多情况,例如:
·删除表.
·表被截断.
·嵌套和/或递归触发器的设置可防止触发器触发.
触发器也可能是不正确的.无论哪种方式,您最终都可能在数据库中遇到孤儿.
以下是有关如何使用 SSIS 导入/导出向导的文章:
最简单的方法是将一个数据库(我会使用两个数据库中最小的一个)导出为对您来说最方便的格式,然后将其导入到另一个数据库中。只要表名都不同,就不应该出现任何问题。
| 归档时间: |
|
| 查看次数: |
18942 次 |
| 最近记录: |