Sql server 将公共表保留在一个唯一的数据库中

Sql server 将公共表保留在一个唯一的数据库中,sql-server,sql-server-2008-r2,Sql Server,Sql Server 2008 R2,我有一个数据库(SQLServer2008R2),一些常用表必须移到另一个数据库中,因为它们将成为许多客户端的字典数据。出于兼容性原因,很容易将它们放在一个地方 我会用同义词,我试过了,而且很管用!。我的问题是关于外键,SQL Server不支持跨数据库外键 我可以使用触发器,但有风险。。。还有其他解决方法吗?您能否将公共表的“主”保存在单独的数据库中,然后将这些表复制到使用它们的各种数据库中,并复制到一个公共模式中?那样的话,你就需要(a)一个主机来跟踪你的公共表,和(b)每个数据库中这些公共

我有一个数据库(SQLServer2008R2),一些常用表必须移到另一个数据库中,因为它们将成为许多客户端的字典数据。出于兼容性原因,很容易将它们放在一个地方

我会用同义词,我试过了,而且很管用!。我的问题是关于外键,SQL Server不支持跨数据库外键


我可以使用触发器,但有风险。。。还有其他解决方法吗?

您能否将公共表的“主”保存在单独的数据库中,然后将这些表复制到使用它们的各种数据库中,并复制到一个
公共
模式中?那样的话,你就需要(a)一个主机来跟踪你的公共表,和(b)每个数据库中这些公共表的副本,这样你就可以使用正常的引用完整性。我可以做到这一点,但我必须在所有客户机中维护这些表,这是我想要避免的。我相信没有太多的选择。谢谢您的回答。@rgx71:如果您使用Microsoft的复制工具,您不会独立地“维护”所有表——它们可以在一个主位置进行维护,并通过复制进行复制。请提供有关表中包含的数据的更多详细信息,我们可能会提供更多帮助。谁正在更改/添加字典表中的数据,以至于您需要显式外键?如果有人把用户表中的数据搞砸了,最糟糕的情况是什么?内部联接会将这些行排除在外吗?有时你需要以其他福利的名义牺牲100%的保护。哦,触发器只有在写得马虎时才有风险。:-)