我有一张公司表,其中包含与我公司有业务往来的所有公司,并且它位于公司数据库中。
我想在该表与另一个表(人员表)之间创建一个关系,该表位于一个完全不同的数据库(人事数据库)中。
两个数据库都在同一台服务器上。
我如何实现这一目标?
答案 0 :(得分:1)
“虽然在这种情况下你不能使用外键,但有一些解决方法 - 您可以使用包含在检查约束中的触发器或UDF。无论哪种方式,您的数据完整性都不是完全不透水的:如果父表的数据库崩溃并且你从备份中恢复它,你可能很容易找到孤儿。“
答案 1 :(得分:0)
要使用公共密钥选择数据,您可以创建包含三部分限定符的视图:database-schema-table。下面我假设每个人员条目都有一个将它们联系在一起的CompanyID字段,而dbo就是模式。如果这样的字段不存在,您将需要创建并填充一个字段:
CREATE VIEW vCompanyPersonnel
AS
SELECT * FROM tblCompany t1
JOIN dbPersonnel.dbo.tblPersonnel
t2 ON t1.ID = t2.CompanyID
同样,为了对表进行更新并保持参照完整性,您需要创建存储过程,并且只允许应用程序使用这些过程更新数据(无论如何这是最佳实践)。您还应确保人员表中的CompanyID字段不允许空值。一些要考虑的过程: