您當(dāng)前所在位置:
首頁 →
數(shù)據(jù)庫 →
MSSQL →
SQL Server SQL語句導(dǎo)入導(dǎo)出大全
SQL Server SQL語句導(dǎo)入導(dǎo)出大全
時(shí)間:2015-06-28 00:00:00
來源:IT貓撲網(wǎng)
作者:網(wǎng)管聯(lián)盟
我要評論(0)
- 簡介:微軟SQL Server數(shù)據(jù)庫SQL語句導(dǎo)入導(dǎo)出大全,包括與其他數(shù)據(jù)庫和文件的數(shù)據(jù)的導(dǎo)入導(dǎo)出。
/*******??導(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(科目編號 as numeric(10,2)) as nvarchar(255))+’ ’ 轉(zhuǎn)換后的別名
FROM OpenDataSource( ’Microsoft.Jet.OLEDB.4.0’,
??’Data Source="c:test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0’)...xactions
/** 導(dǎo)入文本文件
EXEC master..xp_cmdshell ’bcp "dbname..tablename" in c:DT.txt -c -Sservername -Usa -Ppassword’
/** 導(dǎo)出文本文件
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’
導(dǎo)出到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 數(shù)據(jù)庫
select * from openrowset(’MSDASQL’,
’Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:’,
’select * from [aa.DBF]’)
--*/
/**************導(dǎo)入DBF文件****************/
select * from openrowset(’MSDASQL’,
’Driver=Microsoft Visual FoxPro Driver;
SourceDB=e:VFP98data;
SourceType=DBF’,
’select * from customer where country != "USA" order by country’)
go
/***************** 導(dǎo)出到DBF ***************/
如果要導(dǎo)出數(shù)據(jù)到已經(jīng)生成結(jié)構(gòu)(即現(xiàn)存的)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表的文件名.
/*************導(dǎo)出到Access********************/
insert into openrowset(’Microsoft.Jet.OLEDB.4.0’,
???’x:A.mdb’;’admin’;’’,A表) select * from 數(shù)據(jù)庫名..B表
/*************導(dǎo)入Access********************/
insert into B表 selet * from openrowset(’Microsoft.Jet.OLEDB.4.0’,
???’x:A.mdb’;’admin’;’’,A表)
*********************??導(dǎo)入 xml 文件
DECLARE @idoc int
DECLARE @doc varchar(1000)
--sample XML document
SET @doc =’
??
Customer was very satisfied
???
???
Important
Happy Customer.
???
’
-- 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
/********************導(dǎo)整個(gè)數(shù)據(jù)庫*********************************************/
用bcp實(shí)現(xiàn)的存儲過程
/*
實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入/導(dǎo)出的存儲過程
???根據(jù)不同的參數(shù),可以實(shí)現(xiàn)導(dǎo)入/導(dǎo)出整個(gè)數(shù)據(jù)庫/單個(gè)表
調(diào)用示例:
--導(dǎo)出調(diào)用示例
----導(dǎo)出單個(gè)表
exec file2table ’zj’,’’,’’,’xzkh_sa..地區(qū)資料’,’c:zj.txt’,1
----導(dǎo)出整個(gè)數(shù)據(jù)庫
exec file2table ’zj’,’’,’’,’xzkh_sa’,’C:docman’,1
--導(dǎo)入調(diào)用示例
----導(dǎo)入單個(gè)表
exec file2table ’zj’,’’,’’,’xzkh_sa..地區(qū)資料’,’c:zj.txt’,0
----導(dǎo)入整個(gè)數(shù)據(jù)庫
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)??--服務(wù)器名
,@username varchar(200)???--用戶名,如果用NT驗(yàn)證方式,則為空’’
,@password varchar(200)???--密碼
,@tbname varchar(500)???--數(shù)據(jù)庫.dbo.表名,如果不指定:.dbo.表名,則導(dǎo)出數(shù)據(jù)庫的所有用戶表
,@filename varchar(1000)??--導(dǎo)入/導(dǎo)出路徑/文件名,如果@tbname參數(shù)指明是導(dǎo)出整個(gè)數(shù)據(jù)庫,則這個(gè)參數(shù)是文件存放路徑,文件名自動(dòng)用表名.txt
,@isout bit--1為導(dǎo)出,0為導(dǎo)入
as
declare @sql varchar(8000)
if @tbname like ’%.%.%’ --如果指定了表名,則直接導(dǎo)出單個(gè)表
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 ’+i關(guān)鍵詞標(biāo)簽:
相關(guān)閱讀
熱門文章
淺談JSP JDBC來連接SQL Server 2005的方法
SqlServer2005對現(xiàn)有數(shù)據(jù)進(jìn)行分區(qū)具體步驟
sql server系統(tǒng)表損壞的解決方法
MS-SQL2005服務(wù)器登錄名、角色、數(shù)據(jù)庫用戶、角色、架構(gòu)的關(guān)系
人氣排行
配置和注冊O(shè)DBC數(shù)據(jù)源-odbc數(shù)據(jù)源配置教程
如何遠(yuǎn)程備份(還原)SQL2000數(shù)據(jù)庫
SQL2000數(shù)據(jù)庫遠(yuǎn)程導(dǎo)入(導(dǎo)出)數(shù)據(jù)
SQL2000和SQL2005數(shù)據(jù)庫服務(wù)端口查看或修改
修改Sql Server唯一約束教程
SQL Server 2005降級到2000的正確操作步驟
sql server系統(tǒng)表損壞的解決方法
淺談JSP JDBC來連接SQL Server 2005的方法