Excel資料匯入SQL Server2000的預存程序

來源:互聯網
上載者:User

一、建立預存程序的代碼如下:

--建立預存程序SET QUOTED_IDENTIFIER ONGOSET ANSI_NULLS ONGOCreate  PROCEDURE u_FH_SKASDeclare @err1 intSET @err1 = 0SET 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 TRANSET NOCOUNT OFFGOSET QUOTED_IDENTIFIER OFFGOSET ANSI_NULLS ONGO--執行SQLEXECUTE 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服務,可以停止。解決辦法: 1. 在windows控制面版-->管理工具-->服務-->Distributed Transaction Coordinator-->屬性-->啟動        2.在CMD下運行"net start msdtc"開啟服務後正常。

註:如果在第1步Distributed Transaction Coordinator 無法啟動,則是因為丟失了記錄檔,重新建立記錄檔,再啟動就行了。重新建立 MSDTC 日誌,並重新啟動服務的步驟如下:
(1) 單擊"開始",單擊"運行",輸入 cmd 後按"確定"。
(2) 輸入:msdtc -resetlog (注意運行此命令時,不要執行掛起的事務)
(3) 最後輸入:net start msdtc 斷行符號,搞定!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.