綠色資源網:您身邊最放心的安(ān)全下載站! 最新軟件|熱門排行|軟(ruǎn)件分類|軟(ruǎn)件專題|廠商大(dà)全

綠(lǜ)色(sè)資(zī)源網

技術教(jiāo)程
您的位置:首(shǒu)頁(yè)數(shù)據庫(kù)類SQL Server → (MS SQL Server)SQL語句導入導(dǎo)出大全

(MS SQL Server)SQL語(yǔ)句導(dǎo)入導出大(dà)全

我要評論(lùn) 2009/04/11 11:35:16 來源:綠色(sè)資源網 編輯:佚名 [ ] 評論:0 點擊:661次

/*******  導(dǎo)出到excel

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

/***********  導(dǎo)入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(科(kē)目編號(hào) as numeric(10,2)) as nvarchar(255))+’ ’ 轉換(huàn)後的別名(míng)
FROM OpenDataSource( ’Microsoft.Jet.OLEDB.4.0’,
  ’Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0’)...xactions

/** 導入文(wén)本文件

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’

或(huò)

EXEC master..xp_cmdshell ’bcp "Select * from dbname..tablename" queryout c:\DT.txt -c -Sservername -Usa -Ppassword’

導(dǎo)出到TXT文(wén)本,用(yòng)逗號分開

exec master..xp_cmdshell ’bcp "庫名(míng)..表名" out "d:\tt.txt" -c -t ,-U sa -P password’

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

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

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

--/* FoxPro 數據庫(kù)
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
/***************** 導出到(dào)DBF ***************/
如果要(yào)導出數(shù)據到已經(jīng)生成結構(即現存的(de))FOXPRO表中(zhōng),可以直接(jiē)用下麵(miàn)的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表的文件名(míng).


 

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

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

*********************  導入(rù) 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實現的存儲過程(chéng)


/*
 實現數據導入/導(dǎo)出的存儲(chǔ)過程(chéng)
         根據不同的參數,可以實現(xiàn)導入/導出整個數據(jù)庫/單(dān)個表
 調用示例:
--導出調用示例
----導出單個表
exec file2table ’zj’,’’,’’,’xzkh_sa..地區資料’,’c:\zj.txt’,1
----導出整個數據庫
exec file2table ’zj’,’’,’’,’xzkh_sa’,’C:\docman’,1

--導入(rù)調用(yòng)示(shì)例
----導(dǎo)入單個表
exec file2table ’zj’,’’,’’,’xzkh_sa..地區資料’,’c:\zj.txt’,0
----導入整(zhěng)個數(shù)據庫(kù)
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)  --服(fú)務器名
,@username varchar(200)   --用戶(hù)名,如果用NT驗證方式(shì),則為空(kōng)’’
,@password varchar(200)   --密碼
,@tbname varchar(500)   --數據庫.dbo.表名,如果不指定:.dbo.表名,則導(dǎo)出數據庫(kù)的所有用(yòng)戶表
,@filename varchar(1000)  --導入/導出(chū)路(lù)徑/文件名,如(rú)果@tbname參數指明是導出整個數據庫,則這個參數是文件(jiàn)存放路徑,文件名自動用表名.txt
,@isout bit      --1為導出,0為導入
as
declare @sql varchar(8000)

if @tbname like ’%.%.%’ --如果指(zhǐ)定了表名,則直接導出單個表(biǎo)
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

關鍵詞:SQL,Server

閱讀(dú)本(běn)文後您有什麽感想? 已有 人(rén)給出(chū)評價!

  • 27 歡迎喜歡
  • 1 白癡
  • 1 拜托
  • 1 哇
  • 1 加油
  • 2 鄙(bǐ)視