<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-199  評(píng)論-203  文章-11  trackbacks-0

        今天做這個(gè)東西花了我好長時(shí)間才搞定,貼的網(wǎng)上和大家共享一下,如果大家有更好的方法,請(qǐng)跟帖告知!
    在此非常感謝!


    /***************************************************/
    /**Table:型體單價(jià)                                                                  */
    /***************************************************/
    IF EXISTS(SELECT NAME FROM SYSOBJECTS WHERE NAME='型體單價(jià)')
    -- DROP TABLE 型體單價(jià) 
    GO

    CREATE TABLE 型體單價(jià)
    (
     型體ID Int IDENTITY(1,1) PRIMARY KEY ,
     型體編號(hào) Varchar(20),
     斬刀編號(hào) Varchar(10),
     部門名稱 Varchar(10),
     總單價(jià) Decimal(5,3),
     起止日期 smalldatetime,
     終止日期 smalldatetime,
     修改者 Varchar(10),
     修改日期 DateTime
    )
    GO

    /***************************************************/
    /**Table:型體單價(jià)明細(xì)       */
    /***************************************************/
    IF EXISTS(SELECT NAME FROM SYSOBJECTS WHERE NAME='型體單價(jià)明細(xì)')
    -- DROP TABLE 型體單價(jià)明細(xì)
    GO

    CREATE TABLE 型體單價(jià)明細(xì)
    (
     型體ID Int,
     序號(hào)  Int,
     工序名稱 Varchar(30),
     操作機(jī)器 Varchar(12),
     工種  Varchar(10),
     操作時(shí)間 Decimal(5,1),
     標(biāo)準(zhǔn)時(shí)間 Decimal(5,1),
     單價(jià)  Decimal(5,3),
     標(biāo)準(zhǔn)日產(chǎn)能 Int,
     需求人數(shù) int,
     備注  Varchar(30),
     修改者 Varchar(10),
     修改日期 DateTime
    )
    GO


    --通過存儲(chǔ)過程將Excel資料導(dǎo)入到數(shù)據(jù)庫
    IF EXISTS (SELECT name FROM sysobjects
             WHERE name = 'proc_excelInSql' AND type = 'P')
       DROP PROCEDURE proc_excelInSql
    GO

    --接收兩個(gè)參數(shù)
    CREATE PROCEDURE proc_excelInSql
    @address Varchar(100), --1、文件地址
    @name Varchar(30)  --2、文件名
    AS
    DECLARE @STR VARCHAR(8000)
    --將整理好的數(shù)據(jù)插入到指定數(shù)據(jù)庫中。
     SET @STR='INSERT INTO spg_system.dbo.型體單價(jià)明細(xì)(型體ID,序號(hào),工序名稱,操作機(jī)器,工種,操作時(shí)間,'
     SET @STR=@STR+'標(biāo)準(zhǔn)時(shí)間,單價(jià),標(biāo)準(zhǔn)日產(chǎn)能,需求人數(shù),備注,修改者,修改日期)'
    --將型體字段為空的替換為檔期型體的型體ID編號(hào),修改者默認(rèn)為"Excel 導(dǎo)入",修改日期默認(rèn)為檔期日期。
     SET @STR=@STR+'SELECT ISNULL((SELECT 型體ID FROM SPG_SYSTEM.dbo型體單價(jià) where 型體編號(hào)='''+@name+'''),'
     SET @STR=@STR+'0) as 型體ID, 序號(hào),工序名稱,ISNULL(操作機(jī)器,'''') 操作機(jī)器,ISNULL(工種,'''') 工種,'
     SET @STR=@STR+'ISNULL(操作時(shí)間,0) 操作時(shí)間,ISNULL(標(biāo)準(zhǔn)時(shí)間,0.0) 標(biāo)準(zhǔn)時(shí)間,單價(jià),ISNULL(標(biāo)準(zhǔn)日產(chǎn)能,0)'
     SET @STR=@STR+' 標(biāo)準(zhǔn)日產(chǎn)能,ISNULL(需求人數(shù),0) 需求人數(shù),備注,ISNULL(修改者,''Excel 導(dǎo)入'') 修改者,'
     SET @STR=@STR+'ISNULL(修改日期,getDATE()) 修改日期 FROM ('
    --增加三個(gè)字段型體ID、修改者和修改日期
     SET @STR=@STR+'SELECT null 型體ID, 序號(hào),工序名稱,操作機(jī)器,工種,操作時(shí)間,標(biāo)準(zhǔn)時(shí)間,單價(jià),標(biāo)準(zhǔn)日產(chǎn)能,需求人數(shù),備注,null 修改者,null 修改日期 FROM('
    --從Excel讀出數(shù)據(jù),并修改文件名和過濾沒有用的資料行
     SET @STR=@STR+'SELECT  CAST(F1 AS INT) 序號(hào), F2 工序名稱,F3 操作機(jī)器,F4 工種,F5 操作時(shí)間,CAST(F6 AS DECIMAL(4,1)) 標(biāo)準(zhǔn)時(shí)間,
        cast(F7 as decimal(5,3))  單價(jià),CAST(ROUND(F8,0) AS INT)  標(biāo)準(zhǔn)日產(chǎn)能,CAST(F9 as DECIMAL(4,2)) 需求人數(shù),
        ISNULL( F10,'''') as 備注 FROM '
     SET @STR=@STR+'OPENROWSET(''Microsoft.Jet.OLEDB.4.0'',''Excel 5.0;Database='+@address+''', ''SELECT * FROM ['+@name+'$]'')'
     SET @STR=@STR+')aa  where 序號(hào) != 0'
     SET @STR=@STR+')BB ORDER BY 序號(hào)'
    EXEC (@STR)
    GO

    --調(diào)用存儲(chǔ)過程的時(shí)候,注意D盤要有相應(yīng)的文件,
    exec proc_excelinsql 'D:\184240.xls','184240'
    下載184240.xls'文件

    如有不明之處請(qǐng)Email:kunpeng.niu@163.com


    posted on 2009-03-10 17:11 Werther 閱讀(1263) 評(píng)論(3)  編輯  收藏 所屬分類: 15.SQL Server

    評(píng)論:
    # re: 將Excel的數(shù)據(jù)插入到數(shù)據(jù)庫中示例 2009-03-10 18:43 | Jie
    執(zhí)行完后報(bào)錯(cuò):
    服務(wù)器: 消息 208,級(jí)別 16,狀態(tài) 1,行 1
    對(duì)象名 'spg_system.dbo.型體單價(jià)明細(xì)' 無效。
    服務(wù)器: 消息 208,級(jí)別 16,狀態(tài) 1,行 1
    對(duì)象名 'SPG_SYSTEM.dbo型體單價(jià)' 無效。  回復(fù)  更多評(píng)論
      
    # re: 將Excel的數(shù)據(jù)插入到數(shù)據(jù)庫中示例 2009-03-10 19:21 | Werther
    @Jie
    解決方案一:
    我上面忘記說明,你需要首先在你的SQL Server上面創(chuàng)建一個(gè)名為:spg_system的數(shù)據(jù)庫,把用來測試的表創(chuàng)建在spg_system這個(gè)數(shù)據(jù)庫裡面。
    解決方案二:
    你把表創(chuàng)建在那個(gè)數(shù)據(jù)庫裡面,就把spy_system改成那一個(gè)數(shù)據(jù)庫名。  回復(fù)  更多評(píng)論
      
    # re: 將Excel的數(shù)據(jù)插入到數(shù)據(jù)庫中示例 2009-03-10 21:27 | Jie
    是了,確實(shí)可以,很好很強(qiáng)大  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 亚洲欧洲在线观看| 亚洲av无码av在线播放| 国产精品成人观看视频免费| 亚洲a级片在线观看| 婷婷亚洲天堂影院| 久久99国产乱子伦精品免费| 亚洲日韩中文字幕无码一区| 久久久久亚洲爆乳少妇无| 又大又硬又爽又粗又快的视频免费| 亚洲中文字幕无码久久2020| 色噜噜亚洲精品中文字幕| 57PAO成人国产永久免费视频| 九一在线完整视频免费观看| 久久久久亚洲精品天堂| 国产成人免费网站在线观看| 曰批全过程免费视频在线观看无码| 亚洲国产精品综合久久网各 | 亚洲人成网77777亚洲色| 日本亚洲免费无线码| 成在人线av无码免费高潮水| 精品久久亚洲中文无码| 亚洲中文字幕久久精品无码喷水 | 国产一级a毛一级a看免费人娇| 亚洲av乱码一区二区三区香蕉| 国产精品亚洲mnbav网站| 成人奭片免费观看| 日本免费中文视频| 无人视频在线观看免费播放影院 | 老湿机一区午夜精品免费福利 | 精品免费tv久久久久久久| 亚洲AV无码国产精品永久一区| 亚洲综合日韩中文字幕v在线| 青青青国产色视频在线观看国产亚洲欧洲国产综合 | 免费VA在线观看无码| 中文字幕精品三区无码亚洲| 亚洲欧洲日韩国产综合在线二区| 亚洲?V乱码久久精品蜜桃 | 亚洲国产成人精品无码一区二区| 伊人久久综在合线亚洲91| 国产gav成人免费播放视频| 国产a视频精品免费观看|