2016-11-29 83 views
-2

我試圖使用ssis將單個sql表導出到具有單個Excel文件的多個excel表單中。場景:使用ssis將單個sql表導出到單個Excel文件中的單個sql表格

  1. 在SQL表中具有區域明智的數據。我每天都會從客戶區域獲取數據。
  2. 必須將這些數據導出到不同的Excel工作表中,如同一個Excel文件中的region1,region2
  3. 也是每天運行ssis包前一天數據應該被截斷,並且必須插入新值。
+3

那麼你已經嘗試過什麼?你究竟在幹什麼? –

+0

我已經使用數據流task.in,我已經添加源爲sql服務器,然後添加條件分割分類表(區域1,區域2 ...),然後添加三個指向相同的Excel連接管理器的Excel目標。在運行包後,我可以在單個Excel文件中的不同工作表(區域1,區域2,區域3)中獲取數據區域。現在的問題是,當我運行下一次數據時,會追加上一次運行的數據。我想要截斷舊數據,並且當我每天運行包裹時必須插入新數據。 – Jagan

+0

我從你之前的問題中刪減了緊急乞討。不得不再次做,並修剪txtspk,我已經downvoted。在編寫問題時請多加小心,儘可能使用真實的單詞,不要乞求。謝謝。 – halfer

回答

0
INSERT INTO OPENROWSET('MICROSOFT.ACE.OLEDB.12.0', 'EXCEL 
12.0;DATABASE=D:\DOWNLOADS\XLFILE.XLSX;', 'SELECT COLUMNNAMES FROM [HT$]') 
SELECT COLUMNNAMES 
FROM [DBRD].[DBO].[TABLE] 
+0

可以詳細說明一下我是否已經這麼做 – Jagan

+0

對答案中提供的代碼示例給出一些解釋/上下文總是比較好,以使它們更容易理解。 – EJoshuaS

+0

在代碼中[HT $]是工作表名稱ypu可以更改爲區域1 – Krish

0

創建一個Excel文件命名爲測試具有相同表中的列標題和使用這些查詢

1個將數據導出到現有的Excel文件從SQL Server表

insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
    'Excel 8.0;Database=D:\testing.xls;', 
    'SELECT * FROM [SheetName$]') select * from SQLServerTable 

2將數據從Excel導出到新SQL Server表中

select * 
into SQLServerTable FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
    'Excel 8.0;Database=D:\testing.xls;HDR=YES', 
    'SELECT * FROM [Sheet1$]') 
從Excel個

3將數據導出到現有的SQL Server表

Insert into SQLServerTable Select * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
    'Excel 8.0;Database=D:\testing.xls;HDR=YES', 
    'SELECT * FROM [SheetName$]') 

4如果你不想提前創建一個Excel文件,並希望將數據導出到它,使用

EXEC sp_makewebtask 
    @outputfile = 'd:\testing.xls', 
    @query = 'Select * from Database_name..SQLServerTable', 
    @colheaders =1, 
    @FixedFont=0,@lastupdated=0,@resultstitle='Testing details' 

(現在你可以查找帶有表格格式數據的文件)

最後,這是相當全面的。

How do you transfer or export SQL Server 2005 data to Excel

相關問題