我需要創建一個進程以將多選項卡式Excel電子表格導入SQL Server 2008R2。每個選項卡將是數據庫中的不同表格。這需要每週進行一次,並且應該自動進口。理想情況下,我想將電子表格彈出到一個文件夾中(或讓一些實習生這樣做),並讓sql運行一個查看此文件夾的過程,並將數據添加到此數據庫中的表中。我還想有另一張表格跟蹤進口和日期戳記。我真的不知道從哪裏開始,因爲在tsql上我是一個非常棒的noob。導入Excel到SQL Server 2008
回答
如果你僅限於TSQL
,上述兩個答案會告訴你一些想法。如果您有權訪問Data Tools
或Business Intelligence
以及SSIS
,則可以假定Excel工作簿中的每個表單匹配每次都可以自動執行此操作。使用SSIS
,您將使用數據流任務,並將每張表導入到您想要的表中。當您下週準備好文件時,您會將其放入該文件夾並運行SSIS
包。但是,如果圖表名稱發生變化(例如,一週的牀單被稱爲Cats,Dogs,Rain,下一週是硫,火,地獄),那麼這會導致包裹破損。否則,如果只有工作表內的數據發生變化,那麼這可以通過SSIS完全自動化。
示例文章:https://www.simple-talk.com/sql/ssis/moving-data-from-excel-to-sql-server---10-steps-to-follow/
微軟有一篇不錯的文章 - http://support.microsoft.com/kb/321686 - 概述了所涉及的過程。
的過程簡直是
SELECT * INTO XLImport3 FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\test\xltest.xls;Extended Properties=Excel 8.0')...[Customers$]
哪裏XLImport3
是要導入到表中的數據源是要從導入Excel表。
您需要通過才能使用使用sp_configure允許使用的 '特設分佈式查詢' 'OpenDatasource' – illumi
以下是將csv文件中的數據插入給定表的代碼。我不是項目的全部要求,但是如果我是你,我只需將每個表分成不同的文件,然後運行一個將數據插入到每個表中的proc。
BULK
INSERT TABLE_NAME
FROM 'c:\filename.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
insert into import_history ('filename', 'import_date') values ('your_file_name', getdate())
而且,跟蹤進口和時間戳的表格中,你可以只中插入一些數據表中的每個批量插入後由上述可見。
而且,這裏有一個鏈接到批量插入教程從CSV文件也可能會有幫助:http://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-into-sql-server-using-bulk-insert-load-comma-delimited-file-into-sql-server/
其非常簡單。右鍵單擊SQL服務器(2008)數據庫,選擇Tasks
並選擇Import Data
現在改變DataSource
到Microsoft Excel
。點擊Browse
按鈕,然後點擊Next
,選擇Excel文件的路徑。
之所以選擇Sql Server instance
並選擇其中的excel要導入的數據庫。
選擇Copy data from one or more tables or views
並單擊Next
。
現在選擇的薄片要導入到Sql Server
。
點擊Next
現在點擊Finish
現在嚮導從Excel
導入數據到Sql Server
並單擊Close
。
下面是表
看看OP在哪裏說「...應該是自動化的......」 – kfm2000
- 1. 將Excel 2010導入到Sql Server 2008中
- 2. 如何導入excel到sql server 2008?
- 3. 導入Excel文件到SQL Server 2008
- 4. 在sql server 2008中導入excel文件
- 5. SQL Server 2008 R2的Excel導入
- 6. SQL Server 2008導入excel文件
- 7. 導入Excel到SQL Server CE
- 8. Excel 2010到Sql Server 2008插入狀態
- 9. 將Excel數據導入到SQL Server
- 10. 數據導入SQL Server 2008
- 11. C#代碼導入Excel數據到SQL Server 2008
- 12. 從Excel 2007導入數據到SQL Server 2008(兩個關係表)
- 13. 導入數據從Excel到SQL Server 2008#2
- 14. 無法使用SQL Server 2008 R2中的OPENROWSET導入到Excel
- 15. 將excel數據導入到SQL Server 2008中
- 16. 導入txt文件到SQL Server 2008
- 17. 從SQL Server導出到Excel
- 18. 卡住導入嚮導SQL Server 2008 R2(來自Excel)
- 19. 從SQL Server 2008導入和導出嚮導到SQL Azure
- 20. 從SQL Server導入數據到Excel不導入密鑰
- 21. 將SQL Server 2008表導出到Excel中的Excel中#
- 22. 如何將Sql Server 2008數據庫導入到SQL Server 2012中
- 23. 無法打開導入到SQL Server 2008的SQL Server 2000 DTS包
- 24. SQL Server 2005從Excel導入
- 25. SSIS包導入Excel文件到SQL Server
- 26. 將excel文件導入到sql server
- 27. 從Excel/CSV導入數據到SQL Server
- 28. 將Excel 2010導入到SQL Server中
- 29. 從Excel導入數據到SQL Server
- 30. 從Excel導入數據到SQL Server
我讀過這篇文章,它看起來很漂亮ightforward。我會爲每個tab \ table創建不同的數據流分支嗎? – d90
@NicholasJDininno對於多個工作表,我將有一個數據流任務,並且在該數據流任務中,具有多個ADO.NET或OLE DB連接目標的Excel源。如果你選擇,你可以做幾個數據流;隨你便。 – Question3CPO