2015-02-11 56 views
0

我正在SQL Server 2014上构建数据库。我有一个用户表和一个配置文件表,我需要与这两个表都有关系。我将userid(用户表上的主键)与profiles表(用作userid)作为外键关联。这只是一个需要考虑的例子。SQL Server上的远程foriegn键

我需要知道的是,如果profiles表在另一个服务器实例上该怎么办?有什么方法可以将两者连接起来?原因是我不希望过多的表和数据太多的SQL服务器... 谢谢, 沙林Gopalan

回答

1

这是不可能的,创建数据库之间的外键关系 - 更不用说间服务器实例。

您可能可以在配置文件表上创建一个触发器,用于检查其他数据库中用户表中是否存在用户标识,但是我担心这种方法的性能会很差。

更好的解决方案是将一个表复制到另一个数据库,然后以常规方式创建外键关系。你如何复制表格(SSIS,CDC,触发器等)取决于你。

+0

谢谢!是的,复制似乎是一个好主意。只是想知道主表上的删除和更新操作将如何影响其他数据库表... – 2015-02-11 08:49:18

+0

如果需要,可以在定义外键关系时启用级联更新/删除。这样,当主表中发生某些事情时,外表中的记录会自动删除/更新。缺省情况下,级联被禁用 - 当有外部记录引用它时,当您尝试从主表中删除记录时,会导致错误。但是再一次 - 只有当表在同一个数据库中时,这才有效,所以你仍然需要以某种方式处理数据库之间的一个表的复制。 – Dan 2015-02-11 08:51:29

+0

我可以不使用触发器吗? – 2015-02-11 09:21:57