MSSQL資料庫匯入匯出大全二 SQL語句

2022-04-12 08:22:16 字數 4273 閱讀 8855

excel檔案匯入資料庫多個sheet

if exists(select 1 from sysobjects where name=n'p_import_excel' and type='p')

drop proc p_import_excel

go--呼叫示例exec p_import_excel 'c:\123.xls','sheet1;sheet2;sheet3','tbl'

create proc p_import_excel

@excfilename nvarchar(100),--檔案路徑

@sheet nvarchar(1000), --所要導的sheet,以';'分隔,如'sheet1;sheet2;sheet3'

@tblname nvarchar(100)--要匯入的表名

asbegin

set @sheet=@sheet+';'

declare @excsheet nvarchar(100)

while charindex(';',@sheet)>0

begin

select @excsheet=left(@sheet,charindex(';',@sheet)-1)

exec('select * into '+@tblname+'  from openrowset(''microsoft.jet.oledb.4.0'',''excel

8.0;hdr=yes,database='+@excfilename+''',''select * from ['+@excsheet+'$]'')  ')

set @sheet=stuff(@sheet,1,charindex(';',@sheet),'')

endend

go無論excel版本是什麼,在extended properties裡都要寫excel 8.0,注意空格

hdr=yes:說明excel檔案的第一行是列字,而不是資料。如果第一行也是資料的話,用hdr=no。預設值為yes

imex=1:就是將混合型的列轉換成文字列  

注意查詢語句:工作表名要用[$]框起來

/*******  匯出到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 ='

customer was very satisfied

important

'-- 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

MSSQL匯入匯出資料

匯出到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....

MSSQL資料庫資料匯出insert

create proc spgeninsertsqlhan tablename varchar 256 as begin declare sql varchar max declare sqlvalues varchar max set sql set sqlvalues values select...

匯入匯出資料庫

1.匯出整個資料庫 mysqldump u 使用者名稱 p 資料庫名 匯出的檔名 2.匯出乙個表 mysqldump u 使用者名稱 p 資料庫名 表名 匯出的檔名 3.匯入資料庫 mysql 資料庫名 檔案 mysql u root 資料庫名 檔案 4.備份時,排除某張表的 mysqldump u...