簡體   English   中英

使用SSIS導出SQL Server中的多個文本文件

[英]Using SSIS to Export Multiple Text Files in SQL Server

我每月運行一個流程,該流程要求我建立一個包含4-5百萬條記錄的表,並將其分成每個包含240,000條記錄的.txt文件。 我在SQL Server 2012中使用此代碼創建文件分頁,然后使用SSIS包運行此存儲過程並創建.txt文件。 我將@PageNumber更改為2,重新編譯存儲過程,運行SSIS包。 將@PageNumber遞增到3,依此類推,直到我用完記錄(400萬條記錄大約需要20倍)。

我想知道是否有人知道一種循環遍歷代碼並一次性創建多個.txt文件的方法,而不必將@PageNumber值更改為20x?

CREATE PROCEDURE [dbo].[p_ExportAllDMCSBorrowersPaging] 
AS
BEGIN
DECLARE @PageNumber AS INT, @RowspPage AS INT
SET @PageNumber = 1
SET @RowspPage = 240000

SELECT  [SSN]
        ,[DOB]
        ,[LastName]
        ,[FirstName]
        ,[CustomerRecordID]
        ,[ADDate]
        ,[MiddleName] FROM (
         SELECT ROW_NUMBER() OVER(ORDER BY ID) AS NUMBER,
                 [SSN]
                ,[DOB]
                ,[LastName]
                ,[FirstName]
                ,[CustomerRecordID]
                ,[ADDate]
                ,[MiddleName]
        FROM [dbo].[All Borrowers 20160919]
               ) AS TBL
        WHERE 
            NUMBER BETWEEN ((@PageNumber - 1) * @RowspPage + 1) AND (@PageNumber * @RowspPage)
        ORDER BY 
            NUMBER

我將為此使用For循環。

使用包變量保存表中的行數和當前行計數器。

首先,將一個腳本放入循環中,該腳本可將平面文件目標的連接字符串更改為您要為該迭代命名的名稱(例如:Page1,Page2等)

然后將數據流放入For循環中,該循環使用計數器變量從變量的值開始獲得24萬行。

循環的每次迭代之后,將計數器增加240k,直到其超過表中的行數,然后退出循環。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM