2013-05-21 25 views
1

我想創建一個針對我的數據庫中的表插入的觸發器。因此,舉例來說,如果我有一個company_name表,我想做到以下幾點:使用插入ID的SQL Server觸發器

  1. 插入新行company_name臺服務器上的一個
  2. 調用一個觸發器,獲取行的新插入的ID在company_name服務器A上
  3. 在服務器B
  4. 插入的是完全相同的行company_name表剛插入服務器A到company_name臺服務器B上的Set identity_insert ON

鏈接的服務器可以被稱爲[ServerB].[ServerB-Database].dbo.company_name

這是由於不同國家客戶的數據託管限制而產生的一項要求。

+0

那麼你對此有何疑問? –

+0

我該如何寫這個觸發器來做到這一點? –

+2

ID是否是一個guid,如果不是,你將如何避免服務器中的id與B中的id相沖突?如果serverB不可用,你想做什麼,在服務器a中插入失敗?我看到問題。 –

回答

4

的一個問題是滯後和國家A和B.

雖然遠程插入發生時,本地事務仍在運行之間的連接。這會降低性能並增加阻塞。

遠程服務器也可能不可用。或者花太長時間迴應。您可以將觸發器編碼爲不失敗,但是您的數據不一致。

最後,如果在遠程服務器上有插入,則會出現多主站問題。

我真的會考慮像複製這樣的解決方案將數據發佈到另一臺服務器。 或考慮使用服務代理來分離本地和遠程插入。

+0

感謝您的回答。我想我會採用不同的方法。 –