sql-server – 来自不同DB中的过滤器所需的1 DB中的表的数据
发布时间:2020-12-12 16:51:30 所属栏目:MsSql教程 来源:网络整理
导读:我有一个Win Form,数据输入,应用程序使用4个单独的数据库.这是偶尔连接的应用程序,它使用合并复制(SQL 2005)保持同步.这工作得很好.我试图解决的下一个障碍是向我的出版物添加过滤器. 现在我们正在为我们的150个订户中的每个订阅者复制70mbs,但实际上,他们只
我有一个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] 解决方法http://www.sqlservercentral.com/articles/Advanced/designingcrossdatabasequeries/1753/您可以在视图中使用跨数据库查询. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |