2013-01-02 101 views
3

我想將Excel文件加載到臨時表中,以便我可以在臨時表中執行一些操作。從Excel文件加載數據並加載到臨時表中

我用以下語句打開excel文件。但現在我需要將它加載到臨時表中。

SELECT A.* 
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
       'Excel 12.0;Database=D:\b1.xlsx; hdr=yes', 
       'SELECT * FROM [Co Contact$]') AS A; 

什麼蔭想是這樣的

select top 0 * 
into #mytemptable 
from A 

我需要出去聲明臨時表,而不在Excel文件中指定的列名做一些事情。 (因爲excel文件可能包含近100列)

這可能嗎?

+0

玩什麼,當你嘗試會發生什麼? – tschmit007

+0

謝謝..我試圖插入TempTable時收到消息「無效的對象名'A'」。我認爲「A」在執行第二個陳述之前失去了它的範圍。 – Ananth

+0

爲什麼不直接從Excel導入數據到SQL服務器數據庫,然後查詢數據庫像瘋了一樣你喜歡 –

回答

2

假設你的第一條語句的作品,把它放入你需要做這樣的臨時表:

SELECT A.* 
INTO #MyTempTable 
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
       'Excel 12.0;Database=D:\b1.xlsx; hdr=yes', 
       'SELECT * FROM [Co Contact$]') AS A; 

然後你就可以用#mytemptable

Select * From #mytemptable; 
+0

錯誤地工作..thannks :) – Ananth