2012-08-16 61 views
0

我有一些SQL技能,但我有一个问题: 我目前每月通过包含1张信息的电子邮件获得excel工作表。我需要能够使用此信息完全更新和替换SQL Server 2008(express)中的表。如何更新excel中的工作表的SQL表格

我试图创建一个proceedure删除表和使用这样的事情

Drop Table Utah 

Create table Utah 


Insert into dbo.[Utah] 
Select * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
     'Excel 8.0;Database=c:< .sxl file here>;HDR=YES', 
    'SELECT * FROM [Utah]') 

重新创建但是我的运气不好,当我尝试做一个proceedure这一点。

每个步骤似乎都可以自行完成,但为了简化操作并使其他人能够轻松完成 - 您能否帮助我?

+0

了'INSERT INTO ....' - 你应该确保它不存在第一(这是'DROP TABLE') - 但是你应该**不**已经尝试自己重新创建该表; 'INSERT INTO'将为您做到这一点。 – 2012-08-16 14:07:54

+0

marc_s - INSERT INTO如何创建表? – AnandPhadke 2012-08-16 14:17:57

回答

0

处理此问题的最佳方法是创建SSIS作业。

在那里你可以自动执行该过程来处理excel文件和刷新sql表和all.Its将非常流畅和方便。

在SQL Express的酪氨酸的情况下,如果你想创建使用该表运行此代码存储过程

IF EXISTS(select * from sysobjects where name='Utah' and type='U') 
DROP TABLE Utah 
GO 

Create table Utah(col1 int,col2 int) 
Go 

Insert into dbo.[Utah] 
Select * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
     'Excel 8.0;Database=c:< .sxl file here>;HDR=YES', 
    'SELECT * FROM [Utah]') 

Go 
+0

SSIS是否在服务器2008上可用?当我查看安装时,我已经选择了R2软件包中的所有可用项目。 – Steve 2012-08-16 14:20:57

+0

没有明确的版本,你不能运行SSIS – AnandPhadke 2012-08-16 14:24:11

+0

检查更新的答案 – AnandPhadke 2012-08-16 14:28:12