2017-08-26 177 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