2012-08-16 63 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