電腦技巧.圖片新聞 | 用戶注冊 | 用戶中心 | 發表文章 | 留言簿 | 掃一掃手機閱讀
          |繁體中文|  RSS訂閱 |極速版  |手機訪問  
        電腦常用技巧,PC Skill,電腦知識,組裝維修,經驗,資料精華寶庫,HUGESKY CMS官網,鴻天全站,HUGESKY-SQL數據導入導出語句大全
        本站申明:
        本站盡量純凈無廣告,提供交流學習類共享資料。[廣告投放說明] [聯系]
        • 首 頁
        • 電腦知識
        • 應用技巧
        • 組裝技巧
        • 維修技巧
        • 網絡技巧
        • 組網通信
        • 辦公技巧
        • 技巧視頻
        • 編程技巧
        • 防毒技巧
        • 博客圈
        會員注冊關閉
        帳號: 密碼: 驗證碼: 點擊顯示驗證碼 記住
        電腦技巧 -> 編程技巧 -> NET編程技巧

        SQL數據導入導出語句大全

        作者:來源:網絡收集 整理日期:2012-10-21
        推薦指數: 點擊:3462   文字大小: 加入收藏夾


        簡介:微軟SQL Server數據庫SQL語句導入導出大全,包括與其他數據庫和文件的數據的導入導出。

        /*******  導出到Excel
        EXEC master..xp_cmdshell ’bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""’

        /***********  導入Excel
        SELECT *
        FROM OpenDataSource( ’Microsoft.Jet.OLEDB.4.0’,
          ’Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0’)...xactions

        SELECT cast(cast(科目編號 as numeric(10,2)) as nvarchar(255))+’ ’ 轉換后的別名
        FROM OpenDataSource( ’Microsoft.Jet.OLEDB.4.0’,
          ’Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0’)...xactions

        /** 導入文本文件
        EXEC master..xp_cmdshell ’bcp "dbname..tablename" in c:\DT.txt -c -Sservername -Usa -Ppassword’

        /** 導出文本文件
        EXEC master..xp_cmdshell ’bcp "dbname..tablename" out c:\DT.txt -c -Sservername -Usa -Ppassword’
        或
        EXEC master..xp_cmdshell ’bcp "Select * from dbname..tablename" queryout c:\DT.txt -c -Sservername -Usa -Ppassword’

        導出到TXT文本,用逗號分開
        exec master..xp_cmdshell ’bcp "庫名..表名" out "d:\tt.txt" -c -t ,-U sa -P password’

        BULK INSERT 庫名..表名
        FROM ’c:\test.txt’
        WITH (
            FIELDTERMINATOR = ’;’,
            ROWTERMINATOR = ’\n’
        )

        --/* dBase IV文件
        select * from
        OPENROWSET(’MICROSOFT.JET.OLEDB.4.0’
        ,’dBase IV;HDR=NO;IMEX=2;DATABASE=C:\’,’select * from [客戶資料4.dbf]’)
        --*/

        --/* dBase III文件
        select * from
        OPENROWSET(’MICROSOFT.JET.OLEDB.4.0’
        ,’dBase III;HDR=NO;IMEX=2;DATABASE=C:\’,’select * from [客戶資料3.dbf]’)
        --*/

        --/* FoxPro 數據庫
        select * from openrowset(’MSDASQL’,
        ’Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\’,
        ’select * from [aa.DBF]’)
        --*/

        /**************導入DBF文件****************/
        select * from openrowset(’MSDASQL’,
        ’Driver=Microsoft Visual FoxPro Driver;
        SourceDB=e:\VFP98\data;
        SourceType=DBF’,
        ’select * from customer where country != "USA" order by country’)
        go
        /***************** 導出到DBF ***************/
        如果要導出數據到已經生成結構(即現存的)FOXPRO表中,可以直接用下面的SQL語句

        insert into openrowset(’MSDASQL’,
        ’Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\’,
        ’select * from [aa.DBF]’)
        select * from 表

        說明:

        SourceDB=c:\  指定foxpro表所在的文件夾
        aa.DBF        指定foxpro表的文件名.

        /*************導出到Access********************/
        insert into openrowset(’Microsoft.Jet.OLEDB.4.0’,
           ’x:\A.mdb’;’admin’;’’,A表) select * from 數據庫名..B表

        /*************導入Access********************/
        insert into B表 selet * from openrowset(’Microsoft.Jet.OLEDB.4.0’,
           ’x:\A.mdb’;’admin’;’’,A表)

         

         

        *********************  導入 xml 文件

        DECLARE @idoc int
        DECLARE @doc varchar(1000)
        --sample XML document
        SET @doc =’
        <root>
          <Customer cid= "C1" name="Janine" city="Issaquah">
              <Order oid="O1" date="1/20/1996" amount="3.5" />
              <Order oid="O2" date="4/30/1997" amount="13.4">Customer was very satisfied
              </Order>
           </Customer>
           <Customer cid="C2" name="Ursula" city="Oelde" >
              <Order oid="O3" date="7/14/1999" amount="100" note="Wrap it blue
                     white red">
                    <Urgency>Important</Urgency>
                    Happy Customer.
              </Order>
              <Order oid="O4" date="1/20/1996" amount="10000"/>
           </Customer>
        </root>
        ’
        -- Create an internal representation of the XML document.
        EXEC sp_xml_preparedocument @idoc OUTPUT, @doc

        -- Execute a SELECT statement using OPENXML rowset provider.
        SELECT *
        FROM OPENXML (@idoc, ’/root/Customer/Order’, 1)
              WITH (oid     char(5),
                    amount  float,
                    comment ntext ’text()’)
        EXEC sp_xml_removedocument @idoc

        /********************導整個數據庫*********************************************/

        用bcp實現的存儲過程 //from www.w3sky.com

        /*
         實現數據導入/導出的存儲過程
                 根據不同的參數,可以實現導入/導出整個數據庫/單個表
         調用示例:
        --導出調用示例
        ----導出單個表
        exec file2table ’zj’,’’,’’,’xzkh_sa..地區資料’,’c:\zj.txt’,1
        ----導出整個數據庫
        exec file2table ’zj’,’’,’’,’xzkh_sa’,’C:\docman’,1

        --導入調用示例
        ----導入單個表
        exec file2table ’zj’,’’,’’,’xzkh_sa..地區資料’,’c:\zj.txt’,0
        ----導入整個數據庫
        exec file2table ’zj’,’’,’’,’xzkh_sa’,’C:\docman’,0

        */
        if exists(select 1 from sysobjects where name=’File2Table’ and objectproperty(id,’IsProcedure’)=1)
         drop procedure File2Table
        go
        create procedure File2Table
        @servername varchar(200)  --服務器名
        ,@username varchar(200)   --用戶名,如果用NT驗證方式,則為空’’
        ,@password varchar(200)   --密碼
        ,@tbname varchar(500)   --<數據庫.dbo.表名,如果不指定:.dbo.表名,則導出數據庫的所有用戶表
        ,@filename varchar(1000)  --導入/導出路徑/文件名,如果@tbname參數指明是導出整個數據庫,則這個參數是文件存放路徑,文件名自動用表名.txt
        ,@isout bit      --1為導出,0為導入 //from www.w3sky.com
        as
        declare @sql varchar(8000)

        if @tbname like ’%.%.%’ --如果指定了表名,則直接導出單個表
        begin
         set @sql=’bcp ’+@tbname
          +case when @isout=1 then ’ out ’ else ’ in ’ end
          +’ "’+@filename+’" /w’
          +’ /S ’+@servername
          +case when isnull(@username,’’)=’’ then ’’ else ’ /U ’+@username end
          +’ /P ’+isnull(@password,’’)
         exec master..xp_cmdshell @sql
        end
        else
        begin --導出整個數據庫,定義游標,取出所有的用戶表
         declare @m_tbname varchar(250)
         if right(@filename,1)<>’\’ set @filename=@filename+’\’

         set @m_tbname=’declare #tb cursor for select name from ’+@tbname+’..sysobjects where xtype=’’U’’’
         exec(@m_tbname)
         open #tb
         fetch next from #tb into @m_tbname
         while @@fetch_status=0
         begin
          set @sql=’bcp ’+@tbname+’..’+@m_tbname
           +case when @isout=1 then ’ out ’ else ’ in ’ end
           +’ "’+@filename+@m_tbname+’.txt " /w’
           +’ /S ’+@servername
           +case when isnull(@username,’’)=’’ then ’’ else ’ /U ’+@username end
           +’ /P ’+isnull(@password,’’)
          exec master..xp_cmdshell @sql
          fetch next from #tb into @m_tbname
         end
         close #tb
         deallocate #tb 
        end
        go

         


        /**********************Excel導到Txt****************************************/
        想用
        select * into opendatasource(...) from opendatasource(...)
        實現將一個Excel文件內容導入到一個文本文件

        假設Excel中有兩列,第一列為姓名,第二列為很行帳號(16位)
        且銀行帳號導出到文本文件后分兩部分,前8位和后8位分開。

        如果要用你上面的語句插入的話,文本文件必須存在,而且有一行:姓名,銀行賬號1,銀行賬號2
        然后就可以用下面的語句進行插入
        注意文件名和目錄根據你的實際情況進行修改.

        insert into
        opendatasource(’MICROSOFT.JET.OLEDB.4.0’
        ,’Text;HDR=Yes;DATABASE=C:\’
        )...[aa#txt]
        --,aa#txt)
        --*/
        select 姓名,銀行賬號1=left(銀行賬號,8),銀行賬號2=right(銀行賬號,8)
        from
        opendatasource(’MICROSOFT.JET.OLEDB.4.0’
        ,’Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:\a.xls’
        --,Sheet1$)
        )...[Sheet1$]

        如果你想直接插入并生成文本文件,就要用bcp

        declare @sql varchar(8000),@tbname varchar(50)

        --首先將excel表內容導入到一個全局臨時表
        select @tbname=’[##temp’+cast(newid() as varchar(40))+’]’
         ,@sql=’select 姓名,銀行賬號1=left(銀行賬號,8),銀行賬號2=right(銀行賬號,8)
        into ’+@tbname+’ from
        opendatasource(’’MICROSOFT.JET.OLEDB.4.0’’
        ,’’Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:\a.xls’’
        )...[Sheet1$]’
        exec(@sql)

        --然后用bcp從全局臨時表導出到文本文件
        set @sql=’bcp "’+@tbname+’" out "c:\aa.txt" /S"(local)" /P"" /c’
        exec master..xp_cmdshell @sql

        --刪除臨時表
        exec(’drop table ’+@tbname)

        用bcp將文件導入導出到數據庫的存儲過程:

        /*--bcp-二進制文件的導入導出

         支持image,text,ntext字段的導入/導出
         image適合于二進制文件;text,ntext適合于文本數據文件

         注意:導入時,將覆蓋滿足條件的所有行
          導出時,將把所有滿足條件的行也出到指定文件中

         此存儲過程僅用bcp實現
        鄒建 2003.08-----------------*/

        /*--調用示例
        --數據導出
         exec p_binaryIO ’zj’,’’,’’,’acc_演示數據..tb’,’img’,’c:\zj1.dat’

        --數據導出
         exec p_binaryIO ’zj’,’’,’’,’acc_演示數據..tb’,’img’,’c:\zj1.dat’,’’,0
        --*/
        if exists (select * from dbo.sysobjects where id = object_id(N’[dbo].[p_binaryIO]’) and OBJECTPROPERTY(id, N’IsProcedure’) = 1)
        drop procedure [dbo].[p_binaryIO]
        GO

        Create proc p_binaryIO
        @servename varchar (30),--服務器名稱
        @username varchar (30), --用戶名
        @password varchar (30), --密碼
        @tbname varchar (500),  --數據庫..表名
        @fdname varchar (30),  --字段名
        @fname varchar (1000), --目錄+文件名,處理過程中要使用/覆蓋:@filename+.bak
        @tj varchar (1000)=’’,  --處理條件.對于數據導入,如果條件中包含@fdname,請指定表名前綴
        @isout bit=1   --1導出((默認),0導入
        AS
        declare @fname_in varchar(1000) --bcp處理應答文件名
         ,@fsize varchar(20)   --要處理的文件的大小
         ,@m_tbname varchar(50)  --臨時表名
         ,@sql varchar(8000)

        --則取得導入文件的大小
        if @isout=1
         set @fsize=’0’
        else
        begin
         create table #tb(可選名 varchar(20),大小 int
          ,創建日期 varchar(10),創建時間 varchar(20)
          ,上次寫操作日期 varchar(10),上次寫操作時間 varchar(20)
          ,上次訪問日期 varchar(10),上次訪問時間 varchar(20),特性 int)
         insert into #tb
         exec master..xp_getfiledetails @fname
         select @fsize=大小 from #tb
         drop table #tb
         if @fsize is null
         begin
          print ’文件未找到’
          return
         end

        end

         


        --生成數據處理應答文件
        set @m_tbname=’[##temp’+cast(newid() as varchar(40))+’]’
        set @sql=’select * into ’+@m_tbname+’ from(
         select null as 類型
         union all select 0 as 前綴
         union all select ’+@fsize+’ as 長度
         union all select null as 結束
         union all select null as 格式
         ) a’
        exec(@sql)
        select @fname_in=@fname+’_temp’
         ,@sql=’bcp "’+@m_tbname+’" out "’+@fname_in
         +’" /S"’+@servename
         +case when isnull(@username,’’)=’’ then ’’
          else ’" /U"’+@username end
         +’" /P"’+isnull(@password,’’)+’" /c’
        exec master..xp_cmdshell @sql
        --刪除臨時表
        set @sql=’drop table ’+@m_tbname
        exec(@sql)

        if @isout=1
        begin
         set @sql=’bcp "select top 1 ’+@fdname+’ from ’
          +@tbname+case isnull(@tj,’’) when ’’ then ’’
           else ’ where ’+@tj end
          +’" queryout "’+@fname
          +’" /S"’+@servename
          +case when isnull(@username,’’)=’’ then ’’
           else ’" /U"’+@username end
          +’" /P"’+isnull(@password,’’)
          +’" /i"’+@fname_in+’"’
         exec master..xp_cmdshell @sql
        end
        else
        begin
         --為數據導入準備臨時表
         set @sql=’select top 0 ’+@fdname+’ into ’
          +@m_tbname+’ from ’ +@tbname
         exec(@sql)

         --將數據導入到臨時表
         set @sql=’bcp "’+@m_tbname+’" in "’+@fname
          +’" /S"’+@servename
          +case when isnull(@username,’’)=’’ then ’’
           else ’" /U"’+@username end
          +’" /P"’+isnull(@password,’’)
          +’" /i"’+@fname_in+’"’
         exec master..xp_cmdshell @sql
         
         --將數據導入到正式表中
         set @sql=’update ’+@tbname
          +’ set ’+@fdname+’=b.’+@fdname
          +’ from ’+@tbname+’ a,’
          +@m_tbname+’ b’
          +case isnull(@tj,’’) when ’’ then ’’
           else ’ where ’+@tj end
         exec(@sql)

         --刪除數據處理臨時表
         set @sql=’drop table ’+@m_tbname
        end

        --刪除數據處理應答文件
        set @sql=’del ’+@fname_in
        exec master..xp_cmdshell @sql

        go


        /** 導入文本文件
        EXEC master..xp_cmdshell ’bcp "dbname..tablename" in c:\DT.txt -c -Sservername -Usa -Ppassword’

        改為如下,不需引號
        EXEC master..xp_cmdshell ’bcp dbname..tablename in c:\DT.txt -c -Sservername -Usa -Ppassword’

        /** 導出文本文件
        EXEC master..xp_cmdshell ’bcp "dbname..tablename" out c:\DT.txt -c -Sservername -Usa -Ppassword’
        此句需加引號

        獲得更多 -> 編程技巧 -> NET編程技巧
        技術支持

        責任編輯: webmaster >>> 百度上搜索  谷歌上搜索

        hugesky
        點擊復制本連接 (http://www.walela49.com/showarticle.php?id=4901)

        發送到郵件  轉換為打印版本  投 發表文章  報 侵權報告  關 關閉窗口
         SQL語句導入/導出數據集
         限制指定程序的運行

        >>> 相關資訊:

        • . 交友類網站裁剪照片源碼
        • . sqlserver數據庫導出到xls
        • . SQLSERVER中大批量導入導出數據
        • . SQL語句導入/導出數據集
        • . 一些很酷的.Net技巧
        • . 清理SqlServer日志方法
        • . ASP.NETMVC入門介紹(下)
        • . 經典SQL語句大全
        • . 22個所見即所得在線Web編輯器
        • . 淺析ASP.NET編程中十大技巧
        【聲明】:
        以上文章或資料除注明為電腦技巧原創或編輯整理外,均為網絡收集整理或網友推薦。以上內容以共享、參考、研究為目的,不存在任何商業目的。
        未注明作者或出處的文章,可能資料來源不規范。如有涉及版權請給予及時聯系更正或予以刪除。
        評論:(開放)

          網友評論: 評  
        以下網友評論只代表網友個人觀點,不代表本站觀點
          發表評論:(匿名用戶不能發表評論! 注冊 登陸)
        昵稱: 驗證碼:
        評分:
        5 4 3 2 1
        內容:
          請文明參與討論,禁止漫罵攻擊。
         
        ·用戶發表意見僅代表其個人意見,并且承擔一切因發表內容引起的糾紛和責任.
        ·本站管理人員有權在不通知用戶的情況下刪除不符合規定的評論信息或留做證據.
        ·請客觀的評價您所看到的資訊,提倡就事論事,杜絕漫罵和人身攻擊等不文明行為.
        內容搜索
          • 站內搜索
        熱門資訊
        • 電腦快捷鍵全都在這了!電腦技巧...
        • 圖說最常用的10個電腦技巧
        • 別說你不會?這9個電腦技巧你必須...
        • Win7解決C盤占用空間大的方法
        • 網銀密碼設置小技巧
        • win7安裝AHCI驅動
        • 平板電腦選購六大要點
        • [推薦]五步搞定電腦網絡安全 五步...
        • 系統自帶的最不起眼但又是最強的...
        • 上班族必懂的電腦技能技巧
        推薦信息
        開啟模板:NEWSKY -關于版權 - 隱私保護 - 聯系我們 - 網站地圖 - 會員列表 - 加入收藏 - 返回頂部

        我問佛:如何才能如你般睿智? 佛曰:佛是過來人,人是未來佛。
        部分資源收集于互聯網并遵循 署名-非商業性使用-相同方式共享3.0共享,盡量署名原創。
        據《信息網絡傳播權保護條例》 如侵犯您的權利,請聯系webmaster(at)hugesky.com刪除。
        Power By HugeSky.Com

        Copyright© www.walela49.com
        Powered by HUGESKY CMS 7.1.1.1080918 professional licensed

        多乐彩