我目前正在工作中创建一个数据库,该数据库本质上是另一个数据库的子数据库。当我们的客户获得我们的软件时,他们会获得一个数据库,我们称之为 MasterBase。该数据库包含两个不同的较小数据库的架构,我们称它们为 MasterC 和 MasterF。
我的工作是获取与 MasterF 相关的所有模式并将它们放入自己的数据库中。问题是 MasterC 中有很多对表和视图的引用。为了解决这个问题,我将添加一个将 MasterF 与 MasterC 配对的属性,以便在我的 .NET 解决方案中我应该能够执行以下操作:
表 tableName....(在 MasterF 中创建的表) 参考 .... MasterC.dbo.tableC(在 MasterC 中的表)
但是,在 SQL 中,这会引发错误:不支持 MSG 1763 跨数据库外键引用。
我读过最常见的解决方法是添加一个触发器,但是看到这不是那么安全,并且有很多这样的实例我想知道是否有另一种方法,也许是存储过程或类似的东西。
如果触发器真的是最好/唯一的方法,我必须为每个有这个问题的表添加一个触发器,我将如何编写这个触发器,我知道一点 SQL,但几乎不精通。
请帮忙!