Excel資料匯入SQL Server2000的儲存過程
--建立儲存過程
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
Create PROCEDURE u_FH_SK
AS
Declare @err1 int
SET @err1 = 0
SET NOCOUNT ON
--設定事務隔離級別
--SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
--OLE/DB provider 不支援隔離層
Begin Tran --開始事務
--SET XACT_ABORT ON --
if (select count(*) from FH_SK2)=0
begin
--把資料從Excel表匯入到網站位表中
insert into FH_SK2
SELECT *
FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="c:\test.xls";Extended properties=Excel 8.0')...[sheet1$]
end
COMMIT TRAN
SET NOCOUNT OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
--執行SQL
EXECUTE u_FH_SK
--查詢匯入的資料
select * from FH_SK2
ps:FH_SK2是SQL中的資料表,test.xls位於c盤下,sheet1$是預設的第一個tab頁(值得注意的是資料庫表和Excel表欄位個數和型別要完全一致)
如果Excel欄位非常多,涉及到行列轉換問題,如下:
如圖1所示的一個Word表格為例,向大家介紹具體的轉置方法。
圖1
1. 首先要在Word中右擊表格左上角的十字標全選整個表格,然後執行右鍵選單中的“複製”命令
2. 接下來開啟Excel,在任意單元格處點選滑鼠右鍵,選擇“選擇性貼上→文字”命令,將Word表格貼上到Excel中。如圖2所示
圖2
3. 右擊並複製圖2中這些帶有資料的單元格(記住,此步不可缺少,至關重要!)
4. 然後切換到另一空白工作表中,右擊並執行“選擇性貼上”命令。最後在彈出的如圖3所示對話方塊中勾選“轉置”核取方塊後點選確定即可
圖3
5. 此時,您便會發現Excel表格中的行列已經按照我們的要求互換了,而且各個單元格的資料也分毫不差,這時再將轉置好的表格拷貝回Word就行了。如圖4所示就是已經轉換好的Word表格,怎麼樣?效果不錯吧。
二、執行儲存過程
在執行儲存過程中,可能會遇到如下錯誤提示:伺服器×××上的MSDTC不可用
解決辦法如下:
MSDTC(分散式交易協調器),協調跨多個資料庫、訊息佇列、檔案系統等資源管理器的事務。該服務的程式名為Msdtc.exe,該程式呼叫系統Microsoft Personal Web Server和Microsoft SQL Server。該服務用於管理多個伺服器 .
位置:控制皮膚--管理工具--服務--Distributed Transaction Coordinator
依存關係:Remote Procedure Call(RPC)和Security Accounts Manager
建議:一般家用計算機涉及不到,除非你啟用Message Queuing服務,可以停止。
位置:控制皮膚--管理工具--服務--Distributed Transaction Coordinator
依存關係:Remote Procedure Call(RPC)和Security Accounts Manager
建議:一般家用計算機涉及不到,除非你啟用Message Queuing服務,可以停止。
解決辦法: 1. 在windows控制面版-->管理工具-->服務-->Distributed Transaction Coordinator-->屬性-->啟動
2.在CMD下執行"net start msdtc"開啟服務後正常。
注:如果在第1步Distributed Transaction Coordinator 無法啟動,則是因為丟失了日誌檔案,重新建立日誌檔案,再啟動就行了。重新建立 MSDTC 日誌,並重新啟動服務的步驟如下:
(1) 單擊"開始",單擊"執行",輸入 cmd 後按"確定"。
(2) 輸入:msdtc -resetlog (注意執行此命令時,不要執行掛起的事務)
(3) 最後輸入:net start msdtc 回車,搞定!
相關文章
- oracle使用儲存過程將表資料以excel格式匯出Oracle儲存過程Excel
- mysql 匯入匯出資料庫以及函式、儲存過程的介紹MySql資料庫函式儲存過程
- MySQL的寫入資料儲存過程MySql儲存過程
- 使用儲存過程(PL/SQL)向資料庫中儲存BLOB物件儲存過程SQL資料庫物件
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- SQL Server 資料訪問策略:儲存過程QCSQLServer儲存過程
- Python匯入Excel表格資料並以字典dict格式儲存PythonExcel
- 使用Oracle SQL Developer匯入Excel資料OracleSQLDeveloperExcel
- 資料庫儲存過程資料庫儲存過程
- SQL 分頁儲存過程SQL儲存過程
- 【SqlServer】清除過期資料的儲存過程SQLServer儲存過程
- SQL Server資料庫遠端更新目標表資料的儲存過程SQLServer資料庫儲存過程
- MySql資料庫——儲存過程MySql資料庫儲存過程
- Sql儲存過程分頁--臨時表儲存SQL儲存過程
- SQL server儲存過程函式SQLServer儲存過程函式
- SQL Server儲存過程的優缺點SQLServer儲存過程
- 使用SQL SERVER儲存過程實現歷史資料遷移SQLServer儲存過程
- 【資料庫】資料庫儲存過程(一)資料庫儲存過程
- EasyPoi, Excel資料的匯入匯出Excel
- SQL SERVER儲存過程AS和GO的含義SQLServer儲存過程Go
- 配置SQL Server Service Broker來傳送儲存過程資料(下)SASQLServer儲存過程
- 配置SQL Server Service Broker來傳送儲存過程資料(上)CYSQLServer儲存過程
- Excel資料匯入Sql Server,部分數字為NullExcelSQLServerNull
- 儲存過程_造使用者資料儲存過程
- Java:匯出Excel大批量資料的優化過程JavaExcel優化
- 【SQL Server】常見系統儲存過程SQLServer儲存過程
- Excel 表匯入資料Excel
- Oracle 資料匯入ExcelOracleExcel
- SQL Server 2005的複製儲存過程選項BYSQLServer儲存過程
- MySQL儲存過程裡動態SQL的使用UXMySql儲存過程UX
- 資料庫分庫,原來 SQL 和儲存過程寫的報表咋辦?資料庫SQL儲存過程
- TP5.1excel匯入資料庫的程式碼?php excel如何匯入資料庫?Excel資料庫PHP
- oracle的儲存過程Oracle儲存過程
- Mysql使用儲存過程快速新增百萬資料MySql儲存過程
- PL/SQL中動態掉用儲存過程SQL儲存過程
- EF中使用SQL語句或儲存過程SQL儲存過程
- MySQL入門--儲存過程(PROCEDURE)和儲存函式(FUNCTION)MySql儲存過程儲存函式Function
- excel 匯入sqlyog資料庫ExcelSQL資料庫
- 匯入excel 資料時間Excel