您的位置:首页 > 数据库

sql导数据

2008-05-14 09:46 197 查看
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'  
)  
   
   
--/*   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表)  
   
     
   
   
     
Top    
     
    回复人:   txlicenhe(马可)   (   )   信誉:167     2003-10-10   18:52:32Z     得分:0      
     
     
       
*********************     导入   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  
   
     
   
   
Top    
     
    回复人:   txlicenhe(马可)   (   )   信誉:167     2003-10-10   18:54:30Z     得分:0      
     
     
       
邹健的  
/********************导整个数据库*********************************************/  
   
用bcp实现的存储过程  
   
   
/*  
实现数据导入/导出的存储过程  
                    根据不同的参数,可以实现导入/导出整个数据库/单个表  
调用示例:  
--导出调用示例  
----导出单个表  
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为导入  
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  
+'   "'+@
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息