해결책은 다음과 같습니다. 나는 루핑 (looping)과 이런 종류의 기능이 포함될 수 있다고 생각할 때 작동하는데 시간이 걸렸다. 어떤 경우에는 아래의 SQL은 각 파일에 대해 하나의 행 사용하여 XML 디렉토리의 내용을 포함하는 테이블 변수와 함께 당신을 떠날 것이다하는 파일 이름을 포함하는 열 및 다른 포함은 XML 내용 :
declare @directory varchar(256) set @directory = 'C:\Temp'
declare @filecount int, @fileindex int, @linecount int, @lineindex int
declare @filename varchar(255), @arg varchar(512), @contents varchar(8000)
set @arg = 'dir ' + @directory + '\ /A-D /B'
declare @dir table ([filename] varchar(512))
insert @dir exec master.dbo.xp_cmdshell @arg
declare @files table (id int not null identity(1,1), [filename] varchar(512), [content] xml null)
insert into @files ([filename]) select [filename] from @dir where [filename] like '%.xml'
select @filecount = count(*) from @files
set @fileindex = 0
while @fileindex < @filecount begin
set @fileindex = @fileindex + 1
select @filename = @directory + '\' + [filename] from @files where id = @fileindex
set @contents = ''
set @arg = 'type ' + @filename
create table #lines(id int not null identity(1,1), line varchar(255))
insert into #lines exec master.dbo.xp_cmdshell @arg
select @linecount = count(*) from #lines
set @lineindex = 0
while @lineindex < @linecount begin
set @lineindex = @lineindex + 1
select @contents = @contents + line from #lines where Id = @lineindex
end
drop table #lines
update @files set [content] = @contents where id = @fileindex
end
select * from @files
go
감사 @Sandy입니다, 첫 번째 링크에 설명 된 'doc ("myxmlfile.xml") ... 기능에 대해 알지 못했습니다. 그게 유용 할거야 ... – grenade
@ 수류탄, 쿨! 하지만, 그것은 하나의 XML 파일에 사용됩니까? – CoderHawk
그것은, 그러나 나는 어떤 종류의 반복을 생각하고있다 ... – grenade