3

SQL Server 2008 (ソース) と SQL Server 2012 (宛先) の間でデータをレプリケートしています。レプリケートされるデータを必要なものに制限するよう求められました。

したがって、フィルターを追加することもできますが、フィルターは別のテーブルの何かに基づいています。JOIN は使用できません。(トランザクション レプリケーション)。

しかし、WHERE 句のエデ​​ィターで、これが許可されていることに気付きました。

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

それが私たちがフィルタリングする必要があるものです。宛先のデータがまったくフィルタリングされていないように見えるため、エディターは機能しないものを入れることを許可しているだけですか?

4

2 に答える 2

0

これを試しましたか?

SELECT * FROM party p
WHERE NOT EXISTS(SELECT 1 FROM placement
                 WHERE child_party_id = p.party_id)
于 2018-07-05T15:43:52.250 に答える
-1

私は同じ問題に直面していました...サブクエリテーブル(WHERE句で使用されるテーブル)の削除\更新後に、トランザクションレプリケーションがデータを再プッシュしないためです。

あなたの例では、配置テーブルの SELECT * FROM party WHERE party_id NOT IN (SELECT child_party_id FROM placement) Update は、レプリケーションに table party から行をプッシュするように指示しません。

于 2015-06-07T02:10:06.940 に答える