大家好,我想知道是否有人对此有任何见解。承担与我相当新的SQL服务器和学习,因为我去。
我有一个文件夹(C:\xml_files\)
,其中包含大约100多个xml文件。我想知道是否有办法上传此文件夹中的所有文件并将其显示在表中,其中每行代表不同文件的结果。所有xml文件的格式都相同。
我目前正在使用MS Sql Server 2012
答案 0 :(得分:1)
让我们说以下是xml文件的结构:
<Books>
<Book>
<Title>Abzc</Title>
<Pages>207</Pages>
</Book>
<Book>
<Title>xyz</Title>
<Pages>312</Pages>
</Book>
<Book>
<Title>ghj</Title>
<Pages>123</Pages>
</Book>
</Books>
因此,您可以使用以下代码将其存储在数据库中:
declare @count int, @filename varchar(20)
set @count=1
while @count<4
begin
select @filename=filename from test4 where id=@count
EXEC('INSERT INTO Books (Title, Book_Pages)
select c3.value(''Title[1]'',''VARCHAR(100)''),
c3.value(''Pages[1]'',''int'') from(
select cast(c1 as xml)
FROM OPENROWSET(
BULK '''+@filename+''',SINGLE_BLOB) as T1(c1)
)as T2(c2)
cross apply c2.nodes(''/Books/Book'') T3(c3)');
set @count=@count+1
end