Sql server 2008 r2 如何使用插件将数据从Sql Server 2008 R2数据库传输到CRM 2011内部数据库?
场景:Sql server 2008 r2 如何使用插件将数据从Sql Server 2008 R2数据库传输到CRM 2011内部数据库?,sql-server-2008-r2,dynamics-crm-2011,Sql Server 2008 R2,Dynamics Crm 2011,场景: X_source=N/A. Y_source=SQL server 2008 R2。 Z_source=CRM 2011数据库。 我有一个Y_源,它每天都会以一定的间隔使用X_源中的信息进行更新。完成后,Z_源必须连接到Y_源并上传该信息。我无法控制X&Y源,但知道Y_源将与Z_源位于同一网络上 问题: 因为我知道Y_source中有超过200000条记录,所以我不能调用所有记录并将它们上传到Z_source。我必须找到一种方法,在那里我可以成批或逐个遍历它们。我的想法是使用T-SQL游
X_source=N/A.
Y_source=SQL server 2008 R2。
Z_source=CRM 2011数据库。
我有一个Y_源,它每天都会以一定的间隔使用X_源
中的信息进行更新。完成后,Z_源
必须连接到Y_源并上传该信息。我无法控制X&Y源,但知道Y_源
将与Z_源
位于同一网络上
问题:因为我知道
Y_source
中有超过200000条记录,所以我不能调用所有记录并将它们上传到Z_source
。我必须找到一种方法,在那里我可以成批或逐个遍历它们。我的想法是使用T-SQL游标,但这似乎是错误的方法
资料来源:我有Y&Z的地址和凭证。我还可以控制
Z_source
编辑
好的,让我澄清一些我认为可能很重要的事情
Z_source
确实是一个独立于CRM 2011的数据库,但它是其源代码的来源Z_source
的流程可以是CRM 2011的外部流程。这意味着只要数据库被更新,CRM是否触发更新就无关紧要创建
,删除
,更新
,合并
等,会触发您在插件中编写的代码的执行。这似乎不适合您的情况,因为您希望独立于CRM操作分批执行操作- 编写一个快速应用程序,一次从SQL Server提取所有数据。对结果调用
,将结果集放入内存.ToList()
- 循环浏览行列表,并在CRM 2011中为每一行执行相应的操作(
,创建
,更新
,等等)。删除
- 对于每一行,在CRM记录中包含该行的唯一标识符,以便将来与
同步时知道是删除还是更新记录Y-Source
- 对于每一行,在CRM记录中包含该行的唯一标识符,以便将来与
- 计划在更新
时运行应用程序Y-Source
根据您的需要,该应用程序可以成为在SQL Server中计划或触发的CLR存储过程、在服务器上按计划运行的控制台应用程序,或者可以实现上述功能的任何其他应用程序。最近的问题也说明了这一点。我不知道您是否习惯SSIS,但我认为它确实可以帮助您 这里有两个关于它的好帖子:和 问候,
Kévin我提出的解决方案是创建一个C#console应用程序来连接到
Y_源代码
检索数据,然后使用CRM 2011 SDK在:SDK/samplecode/cs/quickstart中使用快速启动应用程序,并将其修改为插入Z_源代码
。此应用程序将在Y\u源代码更新6小时后通过Windows任务运行,因此我不需要精确的触发器。谢谢您的回复。我今天会研究你的解决方案。谢谢你的回复。凯文今天会研究你的解决方案,尽管看起来和彼得提到的一样。