2010-08-24 29 views
0

我有兩個數據庫,A和B.在數據庫A上,我有一個表X,其中有10列。在數據庫B上,我有一個表Y,其中有7列。這些表中的4列匹配,並且每當一個表更新一個或多個這些列時,我需要另一個表來更新這些列。我怎樣才能做到這一點?複製似乎不起作用,因爲表結構不同,並且插入/更新觸發器似乎會創建無限循環。如何在SQL中避免無限循環時將更改從一個表複製到另一個表?

+0

複製沒有幫助?如果你只是發佈4個匹配的表,你應該沒有問題。或者你想要更新4個以上的匹配表嗎? – 2010-08-24 17:53:12

+0

@Eton B .:對不起,我覺得我對此並不清楚。有2個表格,其中4列匹配,側面無關列。如果只有4個表匹配,複製將正常工作。 – Brisbe42 2010-08-24 17:55:05

回答

1

要避免循環,你可以讓你的觸發器不做更新,如果值是相等的?

2

複製在不同結構的表格上正常工作,請參閱Filtering Published Data

至於觸發器以防止無限循環,你可以使用上下文信息來建立你的「複製」觸發目前是如此,你會避免循環,看Using Session Context Information

  • 觸發器,您檢查CONTEXT_INFO()是否表示您已處於觸發狀態。
    • 如果是,什麼也不做(返程)
    • 如果NO,SET CONTEXT INFO,以反映您的操作
  • 複製數據
  • 當「翻版」觸發火災,會發現你的背景信息和什麼都不做
  • 清晰的脈絡資訊
  • 回報
0

從PastTable中選擇*到NewT​​able中

相關問題