我有一个Win Form,数据输入,应用程序使用4个单独的数据库.这是偶尔连接的应用程序,它使用合并复制(sql 2005)保持同步.这工作得很好.我试图解决的下一个障碍是向我的出版物添加过滤器.
现在我们正在为我们的150个订户中的每个订阅者复制70mbs,但实际上,他们只需要一小部分.使用过滤器我能够完成这个(见下面的代码),但我必须制作一个映射表才能这样做.该映射表由3列组成. PrimaryID(Guid),WorkerName(varchar)和ClientID(int).
问题是我需要在所有四个数据库中使用此表,以便将其用于过滤器,因为据我所知,过滤器语句中不允许使用视图或跨数据库查询.
我有什么选择?
好像我会将其设置为在1个数据库中维护,然后使用触发器在其他3个数据库中保持更新.为了成为Filter的一部分,我必须在复制集中包含该表,以便如何正确标记它.
还有更好的方法吗?
SELECT <published_columns> FROM [dbo].[tblPlan] WHERE [ClientID] IN (select ClientID from [dbo].[tblWorkerOwnership] where WorkerID = SUSER_SNAME())
这允许您将过滤器链接在一起,下一个过滤器位于第一个过滤器之下,因此它仅从第一个过滤器集中拉出.
SELECT <published_columns> FROM [dbo].[tblPlan] INNER JOIN [dbo].[tblHealthAssessmentReview] ON [tblPlan].[PlanID] = [tblHealthAssessmentReview].[PlanID]