我有两个独立的SQL Server 2005数据库(在同一台服务器上)
主要应用程序数据库
安全数据库有一个用户表,其中包含进行身份验证所需的所有内容。 -
我想在用户和人员表之间强制执行映射。我假设外键不能跨数据库映射,因此我想知道如何强制执行关系的完整性。
答案 0 :(得分:20)
确实不支持跨数据库外键
Msg 1763, Level 16, State 0, Line 2
Cross-database foreign key references are not supported.
如果您确实希望在数据库端强制实施参照完整性,则必须依赖触发器。 (我不推荐)
为了使您的代码更易于维护,您可以为要检查参照完整性的表创建同义词。
CREATE SYNONYM myTable FOR otherdatabase.dbo.myTable;
这将使“手动”检查更容易,因为您无法在同义词上创建外键。
答案 1 :(得分:5)
这是很多工作,但您可以考虑将这两个数据库合并到一个数据库中。如果您希望数据库中的对象之间存在逻辑差异,则可以使用schema。