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