簡體   English   中英

與外部SQL Server數據庫創建關系

[英]Create a relationship with an external SQL Server database

我有一個company表,其中包含與我公司有業務往來的所有公司,並且該表位於company數據庫中。

我想在該表和另一個表(人員表)之間建立一個關系,該表位於完全不同的數據庫(人事數據庫)中。

兩個數據庫都在同一台服務器上。

我該如何實現?

“盡管在這種情況下不能使用外鍵,但是有一些解決方法–您可以使用檢查約束中包裝的觸發器或UDF。無論哪種方式,您的數據完整性都不完全是水密的:如果帶有父表的數據庫崩潰並還原了,從備份中提取出來,您很容易會成為孤兒。”

來自不同數據庫的表上的外鍵

要使用公共密鑰選擇數據,可以創建一個包含三部分的限定符的視圖:database-schema-table。 在下面,我假設每個人員條目都有一個CompanyID字段將他們聯系在一起,並且dbo是架構。 如果不存在這樣的字段,則需要創建並填充一個字段:

CREATE VIEW vCompanyPersonnel AS SELECT * FROM tblCompany t1 JOIN dbPersonnel.dbo.tblPersonnel t2 ON t1.ID = t2.CompanyID

同樣,為了更新任何一個表並保持引用完整性,您將需要創建存儲過程,並且僅允許應用程序使用這些proc更新數據(無論如何,這都是最佳實踐)。 您還應確保人員表中的CompanyID字段不允許使用空值。 需要考慮的一些過程:

  • 添加人員:要求使用CustomerID輸入參數,並確保在Company表中存在該參數。 如果不是,則RAISERROR。
  • 刪除/停用客戶:還要刪除/停用所有相關人員,最好將整個過程包裝在交易中(全部或全部)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM