我们正在SQL Server 2008(源)和SQL Server 2012(目标)之间复制数据。我们被要求将复制的数据限制为我们需要的数据。
所以,我们可以添加一个过滤器,但是,过滤器是基于另一个表中的东西。我们不能使用JOIN。 (事务复制)。
但是,我注意到在WHERE子句的编辑器中,它允许这样:
SELECT * FROM party WHERE party_id NOT IN (SELECT child_party_id FROM placement)
这就是我们需要过滤的东西。编辑器是否允许我放置一些无法使用的东西,因为目标中的数据似乎根本没有被过滤。
答案 0 :(得分:0)
您尝试过吗?
SELECT * FROM party p
WHERE NOT EXISTS(SELECT 1 FROM placement
WHERE child_party_id = p.party_id)
答案 1 :(得分:-1)
我遇到了同样的问题......因为在子查询表(在where子句中使用的表)上删除\ update之后,trasactional复制不会刷新数据。
在你的例子中, SELECT * FROM party WHERE party_id NOT IN(SELECT child_party_id FROM placement) 放置表上的更新不会告诉复制从表派对推送行。