2013-01-02 81 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