是否可以将数据从XML文件导入SQL数据库,如果可以,将如何完成。我有一个包含大约5万个条目的XML文件,我必须创建一个可以操作该数据的应用程序(主要是读取和比较) - 所以我担心的是用这么多数据进行操作(并且很有可能在未来会有更多)将是非常缓慢和低效。 如果您认为其他选项会更好,请告知。 感谢
答案 0 :(得分:4)
您可以使用SQL Server Import and Export Wizard。你也可以查看SQL Server Integration Services。如果要使用C#,则SQL Server支持XML数据类型。你可以利用它。
您还可以尝试读取数据集中的数据,然后使用BulkInsert在SQL Server中插入数据
DataSet reportData = new DataSet();
reportData.ReadXml(Server.MapPath("yourfile.xml"));
SqlConnection connection = new SqlConnection("DB ConnectionSTring");
SqlBulkCopy sbc = new SqlBulkCopy(connection);
sbc.DestinationTableName = "yourXMLTable";
编辑:对于SQL Server 2005,请检查SQL Server 2005 Import / Export Wizard
答案 1 :(得分:2)
尝试从microsoft查看SSIS工具 Sql Server集成服务
http://msdn.microsoft.com/en-us/library/ms141026.aspx
使用此工具,您可以创建保存和运行导入包,并使用过滤和自定义选择。可能您可以将其用作问题的完整解决方案。
答案 2 :(得分:1)
在情况下,我得到了从xml文件中读取数据的要求,并将该xml文件作为参数发送到存储过程 有用的链接 http://www.aspdotnet-suresh.com/2012/12/aspnet-send-xml-file-as-parameter-to.html
答案 3 :(得分:1)
Snaplogic等产品具有“快照”意味着读取xml文件的连接器,解析它然后将其移动到数据库中而无需编写任何代码行。看看Snaplogic。
答案 4 :(得分:1)
另一个需要考虑的选择是:
给出以下xml
<?xml version="1.0" standalone="yes" ?>
<Clients>
<Client>
<Id>1</Id>
<FirstName>FirstName1</FirstName>
<LastName>LastName1</LastName>
</Client>
<Client>
<Id>2</Id>
<FirstName>FirstName2</FirstName>
<LastName>LastName2</LastName>
</Client>
</Clients>
您可以使用以下查询来选择内容。
select
x.a.query('Id').value('.', 'int') as Id
, x.a.query('FirstName').value('.', 'nvarchar(50)') as FirstName
, x.a.query('LastName').value('.', 'nvarchar(50)') as LastName
from
(
select CAST(x AS XML) from OPENROWSET
(BULK 'C:\Users\jmelosegui\Desktop\Clients.xml', SINGLE_BLOB) as T(x)
) T(x)
cross Apply x.nodes('Clients/Client') as x(a)
完成后,你可以加入其他表,或者在插入数据后进行匹配,所有这些都来自sql server端。
答案 5 :(得分:0)
它在很大程度上取决于xml文件的复杂性(对象的深度与嵌套对象的比例,数据的种类和大小等)。
虽然SSIS可以是一个解决方案,如果你有知识,一个简单的c#应用程序也可以完成这项工作。
申请应该:
另一种方法也可以使用执行相同类型工作的简单PowerShell脚本。
答案 6 :(得分:0)
如果您需要将数据从XML转换为SQL,最快的方法是使用https://sqlizer.io之类的转换工具
它将在几秒钟内转换,并为您提供格式正确的表格和INSERT数据。与手动执行脚本或编写脚本相比,它可以节省您几个小时。
此外,与其他工具不同,它不会将任何数据发布到网络上(SQLizer会将其删除),并且对于小文件是免费的
您还可以使用SQLizer转换xlsx,xls或csv和JSON文件。
希望这会有所帮助