2017-08-26 360 views
0

使用xp_dirtree,我获取文件夹中的文件列表。在while循环中,我通过文件将文件加载到表中。在SQL查询中使用while循环

我的循环语法不正确,因为结果循环保持运行并加载相同的文件。

CREATE TABLE #t1(XmlCol XML) 

    create table #t (filename nvarchar(4000)) 
insert into #t 
      SELECT TOP 1 Subdirectory FROM #directory 
      WHERE [file] = 1 AND RIGHT(subdirectory, 4) = '.xml' 

    WHILE EXISTS (SELECT TOP 1 1 FROM #directory) 
    BEGIN 


      INSERT INTO #T1(XmlCol) 
SELECT * FROM OPENROWSET( 
    BULK 'C:\Test\Test1.xml', 
    SINGLE_BLOB) AS x; 


    END 

在BULK'C:\ Test \ Test1.xml'语法中,我需要通过文件传递文件。加载文件#1,然后加载下一个文件。没有使用Cursor,我试图通过while循环来实现这一点。

+0

用MsSql数据库循环查看游标。 –

回答

0

为什么不这样做呢?

insert into #t(filename) 
    select Subdirectory 
    from #directory 
    where [file] = 1 and subdirectory like '%.xml'; 

whileselect似乎并没有做任何有用的。

+0

一个文件夹将有多个xml文件。我需要使用OPENROWSET加载xml文件。 XML中有一个特定的子节点:BillNo。我把BillNo和它的价值拿到桌子上。我必须为该文件夹中的每个可用文件执行此操作。一旦加载,有另一个进程将删除这些XML文件。每天,我们都会得到新鲜的XML文件。我们需要做这个过程。它可以是一个文件或多个文件 – goofyui

+0

谢谢,我完成了Cursor语法。 – goofyui