2012-06-18 80 views
0

我有一個插入數據的主要SQL Server A。對A感興趣的表看起來像這樣:如何實現這種複製?

Name|Entry Time|Exit Time|Comments

從這個主表,我想構建一個包含從A,但與使用WHERE條款一些額外的過濾器相同的數據的另一個服務器B上表即WHERE Name IN ('John', 'Adam', 'Jack')

我不確定這是什麼調用,如果這甚至是由SQL Server本地支持(或者我應該設置一個腳本來實現這一點)。複製意味着複製整個數據,但是有人可以告訴我我在尋找什麼以及如何實現?

回答

1

事務性複製確實支持文章上的過濾器,但我會誠實 - 我從來沒有用過濾器設置文章。 This article may help以及this topic in Books Online

如果只有一張表和/或您不適合潛入複製,您可能需要使用觸發器填充遠程表(如果數據僅在插入時寫入表中並且從未更新過)。但是您需要設置邏輯來處理遠程服務器關閉的情況。

如果您不需要服務器B持續保持最新狀態,則可以使用第三種解決方案 - 您可以使用作業手動移動數據(使用外部聯接/合併或完全交換)與過濾器匹配的一組數據(我在本場景中使用了影子模式,以儘量減少對服務器B的讀者的影響 - see this dba.stackexchange answer for more details)。

1

使用SQL Server進行事務複製支持過濾數據的功能。實際上,當您設置複製時,會出現一個「添加過濾器」對話框(假設您使用的是SSMS),允許您創建過濾器(Where子句)。

您可以瞭解關於此here的更多信息。