2013-07-18 82 views
1

我們正在SQL Server 2008(源)和SQL Server 2012(目標)之間複製數據。我們被要求將被複制的數據限制在我們需要的範圍內。SQL Server複製過濾

因此,我們可以添加一個過濾器,但是,過濾器是基於另一個表中的內容。我們不能使用JOIN。 (事務複製)。

但是,我注意到,在編輯器中的WHERE子句,它允許這樣的:

SELECT * FROM party WHERE party_id NOT IN (SELECT child_party_id FROM placement) 

這就是我們需要過濾。編輯器是否允許我放置一些不起作用的東西,因爲目標中的數據根本沒有被過濾。

+0

filter_clause只是一個where語句,而不是整個select。我不知道這是否會起作用(否則我只是把它作爲答案),但試着把「party_id NOT IN(SELECT child_party_id FROM placement)」。我懷疑它從長遠來看不會起作用,因爲複製不會跟蹤對放置表的更改並對派對錶進行相應的更改。解決方法可能是創建並複製索引視圖。 –

回答

-1

我一直在同一個問題......它因爲交易複製不會重新刪除子查詢表(在where子句中使用的表)刪除\更新後的數據。

在你的榜樣, SELECT * FROM派對,party_id NOT IN(SELECT child_party_id FROM放置) 更新上放置臺上不會告訴複製從表中黨推行。