设为首页 收藏本站
查看: 989|回复: 0

[经验分享] sql server导入 导出数据

[复制链接]

尚未签到

发表于 2016-10-30 09:36:19 | 显示全部楼层 |阅读模式
  sql 表和表之间到导入
  表A导入到表B
  insert into B Select * from A
  表A 的框架结构导入到表B不导入数据
  select * into B from A
  以下都是参考网上归纳总结的:
  select * from OPENROWSET(''MICROSOFT.JET.OLEDB.4.0''
,''Excel 5.0;HDR=YES;DATABASE=c:\1.xls'',sheet2$)
  
  导入导出大全    
*******     导出到excel  
EXEC   master..xp_cmdshell   ''bcp   SettleDB.dbo.shanghu   out   c:\temp1.xls   -c   -q   -S"GNETDATA/GNETDATA"   -U"sa"   -P""''  
   
/***********     导入Excel  
select   *   from   openrowset(''MicroSoft.Jet.OleDB.4.0'',  
                                                    ''Excel   5.0;HDR=yes;Database=c:\test.xls'',sheet1$)  
--------------------------------------------------------  
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''  
)  
  
  jackey  2009.06.23 实例:
  
  实例 1 导出
  CREATE     PROCEDURE  jackeytest11
  
AS

  declare @bcpString varchar(1000)
set @bcpString='BCP  "select * from  CACDB_S1000.dbo.tYHJBXX"  queryout "d:\aaa.txt" -c -S "localhost" -U "sa" -P "xxxxxx"'
EXEC master..xp_cmdshell @bcpString
GO

  实例 2 导出
  EXEC   master..xp_cmdshell   'bcp   "CACDB_S1000.dbo.tYHJBXX111"  out   "d:\bbb.txt"   -c  -S "localhost"   -Usa   -P "xxxxxx"'  
   
  实例 3 导入
   
  EXEC   master..xp_cmdshell   'bcp   "CACDB_S1000.dbo.tYHJBXX111"  in   "d:\aaa.txt"   -c  -S "localhost"   -Usa   -P "xxxxxx"'
   
   
  实例 4 导入
  BULK   INSERT   CACDB_S1000.dbo.tYHJBXX111  
FROM   'd:\aaa.txt' 
WITH(  
    FIELDTERMINATOR='\t',  
    ROWTERMINATOR='\n' 
 )

  实例 5  导出到excel  

  EXEC   master..xp_cmdshell   'bcp   "CACDB_S1000.dbo.tYHJBXX111"  out   "d:\temp1.xls"   -c  -S "localhost"   -Usa   -P "xxxxxx"'  
   
  实例 6  复制表结构 同时也把表中的数据复制到新表中(执行此操作时 新的表名在数据库中不应该存在)
  select * into tYHJBXX222 from tYHJBXX 
   
  
实例 7 
  /*  
用bcp实现的存储过程  

  实现数据导入/导出的存储过程  
                    根据不同的参数,可以实现导入/导出整个数据库/单个表  
调用示例:  
--导出调用示例  
----导出单个表  
exec   file2table   'localhost','sa','xxxxxx','CACDB_S1000.dbo.tYHJBXX','d:\tYHJBXX.txt',1
  
----导出整个数据库  (执行该操作之前要先在d盘根目录下建d:\CACDB_S1000文件夹)
exec   file2table   'localhost','sa','xxxxxx','CACDB_S1000','d:\CACDB_S1000',1  
   
--导入调用示例  
----导入单个表   (执行此操作前,表必须在数据库中存在)
exec   file2table   'localhost','sa','xxxxxx','CACDB_S1000.dbo.tYHJBXX','d:\tYHJBXX.txt',0  
----导入整个数据库 
exec   file2table   'localhost','sa','xxxxxx','CACDB_S1000','d:\CACDB_S1000',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为导入  
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
  
  
  
   
--/*   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  
  
  *********************     导入   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   
   
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-293238-1-1.html 上篇帖子: SQL server本地实例无法打开 下篇帖子: sql server大小写敏感
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表