C# 将xml数据转换为sql server数据库最合适的方法是什么
我正在寻找一些可能的选择,以便从xml文件高效地填充关系SQL Server数据库。所以基本上我设想了一个三步的过程来完成它C# 将xml数据转换为sql server数据库最合适的方法是什么,c#,sql-server,xml,.net-4.0,C#,Sql Server,Xml,.net 4.0,我正在寻找一些可能的选择,以便从xml文件高效地填充关系SQL Server数据库。所以基本上我设想了一个三步的过程来完成它 从公共url读取XML 填充类似于xml模式的sql数据库 填充目标关系sql数据库 我不确定直接将xml映射到目标数据库是否容易实现,即跳过步骤2,但我倾向于这会使过程有点复杂 从公共url读取xml的部分类似于www.abc.com/xmlfeed.xml,这需要一个夜间例程来处理此文件。像windows任务调度之类的东西..或者更好的方法 我只有两天的时间来完成这项
我原以为将遗留数据迁移到SQL Server需要几分钟的时间,因为这样的需求非常频繁,但令我惊讶的是,互联网上几乎没有对不同的xml迁移技术进行讨论/比较。我真的很困惑,不知道该走哪条路,一个纯粹的SQL Server解决方案,如SSIS或类似xml解析器的东西 当我通读你的文章时,我的第一个想法是SSIS,最后是你自己写的。特别是如果你熟悉它,我推荐它。您可以在两天内实现这样的解决方案 在实现ETL过程之后,您可以创建一个SQL Server代理作业,该作业将安排SSIS包在您希望它运行的时间运行。它支持从SQL Server或文件系统运行包 编辑 根据你的例子。完全有可能在SSIS中实现这样的解决方案。我给出了一个处理XML结构的示例项目的屏幕截图
如前所述,如果您已经准备好了包,应该创建一个SQLServer代理作业,它将在晚上(或者在您希望的时候)运行您的包。
因为我是SSIS的新手,所以我可能需要考虑学习曲线。有没有办法将xml直接映射到目标关系数据库?我的意思是跳过步骤2来填充中间数据库。我需要为它写任何查询吗?如果您能给我指一些资源来解释整个过程,那就太好了。您能提供关于XML和目标数据库模式之间差异的信息吗?(不是全部,只是关于为什么您认为需要Intermiade DB的一点摘录。)SSIS中有一些工具可以根据您的喜好转换XML。如果你能提供更多的信息,我可以帮你。比如说feed像number=“2”凯美瑞丰田number=“3”雅阁本田number=“4”思域本田说目标数据库有表制造商、车型、汽车。我需要先填写制造商表,以便将其作为国外关键车型,最后是将参考该车型的汽车。此外,可能还有其他事情,比如用汽车id填写每辆车的图像表等等。这将是多么容易啊,因为我每天都会得到提要,用新车更新数据库,删除xml提要中没有的车,或者更新它们(如果它们已经存在)。非常详细的解释!。虽然只是因为我害怕这个小小的学习曲线,我没有选择SSIS路线。但这看起来确实是一种将xml数据迁移到sql server的非常干净和简单的方法。不过,我确实在两天内完成了迁移,而没有xml解析的麻烦。我使用.NETDataSet读取xml并将数据转储到相同的数据库结构中。在第二步中,我使用普通sql查询实现了将业务逻辑映射到目标关系数据库。虽然我不推荐它,特别是在SSIS之类的东西之后,但它确实起到了作用。