100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > excel生成mysql语句_通过SQL语句直接实现Excel与数据库的导入导出

excel生成mysql语句_通过SQL语句直接实现Excel与数据库的导入导出

时间:2022-08-03 22:33:47

相关推荐

excel生成mysql语句_通过SQL语句直接实现Excel与数据库的导入导出

1、在SQL数据库中直接从Excel里面查询数据:

select \* from

OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel 5.0;HDR=YES;DATABASE=c:\\test.xls',sheet1$)

2、从Excel文件中,导入数据到SQL数据库中,

select\*into表from

![](/syntaxhighlighting/OutliningIndicators/None.gif)OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

![](/syntaxhighlighting/OutliningIndicators/None.gif),'Excel5.0;HDR=YES;DATABASE=c:\\test.xls',sheet1$)

3、从SQL数据库中,导出数据到Excel(excel存在),

insertintoOPENROWSET('MICROSOFT.JET.OLEDB.4.0'

![](/syntaxhighlighting/OutliningIndicators/None.gif),'Excel5.0;HDR=YES;DATABASE=c:\\test.xls',sheet1$)

![](/syntaxhighlighting/OutliningIndicators/None.gif)select\*from表

4、从SQL数据库中,导出数据到Excel(excel不存在),

\---- 导出表

EXECmaster..xp\_cmdshell'bcp数据库名.dbo.表名out"c: est.xls"/c-/S"服务器名"/U"用户名"-P"密码"'

---- 导出查询语句

EXECmaster..xp\_cmdshell'bcp"SELECTau\_fname,au\_lnameFROMpubs..authorsORDERBYau\_lname"queryout"c: est.xls"/c-/S"服务器名"/U"用户名"-P"密码"'

5、导入导出的存储过程

![](/syntaxhighlighting/OutliningIndicators/None.gif)\--下面是导出真正Excel文件的方法:(请将一下所有代码复制到存储过程中)

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)ifexists(select\*fromdbo.sysobjectswhereid\=object\_id(N'\[dbo\].\[p\_exporttb\]')andOBJECTPROPERTY(id,N'IsProcedure')\=1)

![](/syntaxhighlighting/OutliningIndicators/None.gif)dropprocedure\[dbo\].\[p\_exporttb\]

![](/syntaxhighlighting/OutliningIndicators/None.gif)GO

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)/\*\--数据导出EXCEL

![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)

![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)导出表中的数据到Excel,包含字段名,文件为真正的Excel文件

![](/syntaxhighlighting/OutliningIndicators/InBlock.gif),如果文件不存在,将自动创建文件

![](/syntaxhighlighting/OutliningIndicators/InBlock.gif),如果表不存在,将自动创建表

![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)基于通用性考虑,仅支持导出标准数据类型

![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)

![](/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)\--邹建.10(引用请保留此信息)--\*/

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)/\*\--调用示例

![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)

![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)p\_exporttb@tbname='地区资料',@path='c:',@fname='aa.xls'

![](/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)\--\*/

![](/syntaxhighlighting/OutliningIndicators/None.gif)createprocp\_exporttb

![](/syntaxhighlighting/OutliningIndicators/None.gif)@tbnamesysname,\--要导出的表名

![](/syntaxhighlighting/OutliningIndicators/None.gif)@pathnvarchar(1000),\--文件存放目录

![](/syntaxhighlighting/OutliningIndicators/None.gif)@fnamenvarchar(250)\=''\--文件名,默认为表名

![](/syntaxhighlighting/OutliningIndicators/None.gif)as

![](/syntaxhighlighting/OutliningIndicators/None.gif)declare@errint,@srcnvarchar(255),@descnvarchar(255),@outint

![](/syntaxhighlighting/OutliningIndicators/None.gif)declare@objint,@constrnvarchar(1000),@sqlvarchar(8000),@fdlistvarchar(8000)

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)\--参数检测

![](/syntaxhighlighting/OutliningIndicators/None.gif)ifisnull(@fname,'')\=''set@fname\=@tbname+'.xls'

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)\--检查文件是否已经存在

![](/syntaxhighlighting/OutliningIndicators/None.gif)ifright(@path,1)<>''set@path\=@path+''

![](/syntaxhighlighting/OutliningIndicators/None.gif)createtable#tb(abit,bbit,cbit)

![](/syntaxhighlighting/OutliningIndicators/None.gif)set@sql\=@path+@fname

![](/syntaxhighlighting/OutliningIndicators/None.gif)insertinto#tbexecmaster..xp\_fileexist@sql

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)\--数据库创建语句

![](/syntaxhighlighting/OutliningIndicators/None.gif)set@sql\=@path+@fname

![](/syntaxhighlighting/OutliningIndicators/None.gif)ifexists(select1from#tbwherea\=1)

![](/syntaxhighlighting/OutliningIndicators/None.gif)set@constr\='DRIVER={MicrosoftExcelDriver(\*.xls)};DSN='''';READONLY=FALSE'

![](/syntaxhighlighting/OutliningIndicators/None.gif)+';CREATE\_DB="'+@sql+'";DBQ='+@sql

![](/syntaxhighlighting/OutliningIndicators/None.gif)else

![](/syntaxhighlighting/OutliningIndicators/None.gif)set@constr\='Provider=Microsoft.Jet.OLEDB.4.0;ExtendedProperties="Excel8.0;HDR=YES'

![](/syntaxhighlighting/OutliningIndicators/None.gif)+';DATABASE='+@sql+'"'

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)\--连接数据库

![](/syntaxhighlighting/OutliningIndicators/None.gif)exec@err\=sp\_oacreate'adodb.connection',@objout

![](/syntaxhighlighting/OutliningIndicators/None.gif)if@err<>0gotolberr

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)exec@err\=sp\_oamethod@obj,'open',null,@constr

![](/syntaxhighlighting/OutliningIndicators/None.gif)if@err<>0gotolberr

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)/\*\--如果覆盖已经存在的表,就加上下面的语句

![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)\--创建之前先删除表/如果存在的话

![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)select@sql='droptable\['+@tbname+'\]'

![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)exec@err=sp\_oamethod@obj,'execute',@outout,@sql

![](/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)\--\*/

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)\--创建表的SQL

![](/syntaxhighlighting/OutliningIndicators/None.gif)select@sql\='',@fdlist\=''

![](/syntaxhighlighting/OutliningIndicators/None.gif)select@fdlist\=@fdlist+',\['+a.name+'\]'

![](/syntaxhighlighting/OutliningIndicators/None.gif),@sql\=@sql+',\['+a.name+'\]'

![](/syntaxhighlighting/OutliningIndicators/None.gif)+case

![](/syntaxhighlighting/OutliningIndicators/None.gif)whenb.namelike'%char'

![](/syntaxhighlighting/OutliningIndicators/None.gif)thencasewhena.length\>255then'memo'

![](/syntaxhighlighting/OutliningIndicators/None.gif)else'text('+cast(a.lengthasvarchar)+')'end

![](/syntaxhighlighting/OutliningIndicators/None.gif)whenb.namelike'%int'orb.name\='bit'then'int'

![](/syntaxhighlighting/OutliningIndicators/None.gif)whenb.namelike'%datetime'then'datetime'

![](/syntaxhighlighting/OutliningIndicators/None.gif)whenb.namelike'%money'then'money'

![](/syntaxhighlighting/OutliningIndicators/None.gif)whenb.namelike'%text'then'memo'

![](/syntaxhighlighting/OutliningIndicators/None.gif)elseb.nameend

![](/syntaxhighlighting/OutliningIndicators/None.gif)FROMsyscolumnsaleftjoinsystypesbona.xtype\=b.xusertype

![](/syntaxhighlighting/OutliningIndicators/None.gif)whereb.namenotin('image','uniqueidentifier','sql\_variant','varbinary','binary','timestamp')

![](/syntaxhighlighting/OutliningIndicators/None.gif)andobject\_id(@tbname)\=id

![](/syntaxhighlighting/OutliningIndicators/None.gif)select@sql\='createtable\['+@tbname

![](/syntaxhighlighting/OutliningIndicators/None.gif)+'\]('+substring(@sql,2,8000)+')'

![](/syntaxhighlighting/OutliningIndicators/None.gif),@fdlist\=substring(@fdlist,2,8000)

![](/syntaxhighlighting/OutliningIndicators/None.gif)exec@err\=sp\_oamethod@obj,'execute',@outout,@sql

![](/syntaxhighlighting/OutliningIndicators/None.gif)if@err<>0gotolberr

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)exec@err\=sp\_oadestroy@obj

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)\--导入数据

![](/syntaxhighlighting/OutliningIndicators/None.gif)set@sql\='openrowset(''MICROSOFT.JET.OLEDB.4.0'',''Excel8.0;HDR=YES;IMEX=1

![](/syntaxhighlighting/OutliningIndicators/None.gif);DATABASE='+@path+@fname+''',\['+@tbname+'$\])'

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)exec('insertinto'+@sql+'('+@fdlist+')select'+@fdlist+'from'+@tbname)

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)return

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)lberr:

![](/syntaxhighlighting/OutliningIndicators/None.gif)execsp\_oageterrorinfo0,@srcout,@descout

![](/syntaxhighlighting/OutliningIndicators/None.gif)lbexit:

![](/syntaxhighlighting/OutliningIndicators/None.gif)selectcast(@errasvarbinary(4))as错误号

![](/syntaxhighlighting/OutliningIndicators/None.gif),@srcas错误源,@descas错误描述

![](/syntaxhighlighting/OutliningIndicators/None.gif)select@sql,@constr,@fdlist

![](/syntaxhighlighting/OutliningIndicators/None.gif)go

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)ifexists(select\*fromdbo.sysobjectswhereid\=object\_id(N'\[dbo\].\[p\_exporttb\]')andOBJECTPROPERTY(id,N'IsProcedure')\=1)

![](/syntaxhighlighting/OutliningIndicators/None.gif)dropprocedure\[dbo\].\[p\_exporttb\]

![](/syntaxhighlighting/OutliningIndicators/None.gif)GO

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)/\*\--数据导出EXCEL

![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)

![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)导出查询中的数据到Excel,包含字段名,文件为真正的Excel文件

![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)如果文件不存在,将自动创建文件

![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)如果表不存在,将自动创建表

![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)基于通用性考虑,仅支持导出标准数据类型

![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)

![](/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)\--邹建.10(引用请保留此信息)--\*/

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)/\*\--调用示例

![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)

![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)p\_exporttb@sqlstr='select\*from地区资料'

![](/syntaxhighlighting/OutliningIndicators/InBlock.gif),@path='c:',@fname='aa.xls',@sheetname='地区资料'

![](/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)\--\*/

![](/syntaxhighlighting/OutliningIndicators/None.gif)createprocp\_exporttb

![](/syntaxhighlighting/OutliningIndicators/None.gif)@sqlstrvarchar(8000),\--查询语句,如果查询语句中使用了orderby,请加上top100percent

![](/syntaxhighlighting/OutliningIndicators/None.gif)@pathnvarchar(1000),\--文件存放目录

![](/syntaxhighlighting/OutliningIndicators/None.gif)@fnamenvarchar(250),\--文件名

![](/syntaxhighlighting/OutliningIndicators/None.gif)@sheetnamevarchar(250)\=''\--要创建的工作表名,默认为文件名

![](/syntaxhighlighting/OutliningIndicators/None.gif)as

![](/syntaxhighlighting/OutliningIndicators/None.gif)declare@errint,@srcnvarchar(255),@descnvarchar(255),@outint

![](/syntaxhighlighting/OutliningIndicators/None.gif)declare@objint,@constrnvarchar(1000),@sqlvarchar(8000),@fdlistvarchar(8000)

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)\--参数检测

![](/syntaxhighlighting/OutliningIndicators/None.gif)ifisnull(@fname,'')\=''set@fname\='temp.xls'

![](/syntaxhighlighting/OutliningIndicators/None.gif)ifisnull(@sheetname,'')\=''set@sheetname\=replace(@fname,'.','#')

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)\--检查文件是否已经存在

![](/syntaxhighlighting/OutliningIndicators/None.gif)ifright(@path,1)<>''set@path\=@path+''

![](/syntaxhighlighting/OutliningIndicators/None.gif)createtable#tb(abit,bbit,cbit)

![](/syntaxhighlighting/OutliningIndicators/None.gif)set@sql\=@path+@fname

![](/syntaxhighlighting/OutliningIndicators/None.gif)insertinto#tbexecmaster..xp\_fileexist@sql

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)\--数据库创建语句

![](/syntaxhighlighting/OutliningIndicators/None.gif)set@sql\=@path+@fname

![](/syntaxhighlighting/OutliningIndicators/None.gif)ifexists(select1from#tbwherea\=1)

![](/syntaxhighlighting/OutliningIndicators/None.gif)set@constr\='DRIVER={MicrosoftExcelDriver(\*.xls)};DSN='''';READONLY=FALSE'

![](/syntaxhighlighting/OutliningIndicators/None.gif)+';CREATE\_DB="'+@sql+'";DBQ='+@sql

![](/syntaxhighlighting/OutliningIndicators/None.gif)else

![](/syntaxhighlighting/OutliningIndicators/None.gif)set@constr\='Provider=Microsoft.Jet.OLEDB.4.0;ExtendedProperties="Excel8.0;HDR=YES'

![](/syntaxhighlighting/OutliningIndicators/None.gif)+';DATABASE='+@sql+'"'

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)\--连接数据库

![](/syntaxhighlighting/OutliningIndicators/None.gif)exec@err\=sp\_oacreate'adodb.connection',@objout

![](/syntaxhighlighting/OutliningIndicators/None.gif)if@err<>0gotolberr

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)exec@err\=sp\_oamethod@obj,'open',null,@constr

![](/syntaxhighlighting/OutliningIndicators/None.gif)if@err<>0gotolberr

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)\--创建表的SQL

![](/syntaxhighlighting/OutliningIndicators/None.gif)declare@tbnamesysname

![](/syntaxhighlighting/OutliningIndicators/None.gif)set@tbname\='##tmp\_'+convert(varchar(38),newid())

![](/syntaxhighlighting/OutliningIndicators/None.gif)set@sql\='select\*into\['+@tbname+'\]from('+@sqlstr+')a'

![](/syntaxhighlighting/OutliningIndicators/None.gif)exec(@sql)

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)select@sql\='',@fdlist\=''

![](/syntaxhighlighting/OutliningIndicators/None.gif)select@fdlist\=@fdlist+',\['+a.name+'\]'

![](/syntaxhighlighting/OutliningIndicators/None.gif),@sql\=@sql+',\['+a.name+'\]'

![](/syntaxhighlighting/OutliningIndicators/None.gif)+case

![](/syntaxhighlighting/OutliningIndicators/None.gif)whenb.namelike'%char'

![](/syntaxhighlighting/OutliningIndicators/None.gif)thencasewhena.length\>255then'memo'

![](/syntaxhighlighting/OutliningIndicators/None.gif)else'text('+cast(a.lengthasvarchar)+')'end

![](/syntaxhighlighting/OutliningIndicators/None.gif)whenb.namelike'%int'orb.name\='bit'then'int'

![](/syntaxhighlighting/OutliningIndicators/None.gif)whenb.namelike'%datetime'then'datetime'

![](/syntaxhighlighting/OutliningIndicators/None.gif)whenb.namelike'%money'then'money'

![](/syntaxhighlighting/OutliningIndicators/None.gif)whenb.namelike'%text'then'memo'

![](/syntaxhighlighting/OutliningIndicators/None.gif)elseb.nameend

![](/syntaxhighlighting/OutliningIndicators/None.gif)FROMtempdb..syscolumnsaleftjointempdb..systypesbona.xtype\=b.xusertype

![](/syntaxhighlighting/OutliningIndicators/None.gif)whereb.namenotin('image','uniqueidentifier','sql\_variant','varbinary','binary','timestamp')

![](/syntaxhighlighting/OutliningIndicators/None.gif)anda.id\=(selectidfromtempdb..sysobjectswherename\=@tbname)

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)if@@rowcount\=0return

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)select@sql\='createtable\['+@sheetname

![](/syntaxhighlighting/OutliningIndicators/None.gif)+'\]('+substring(@sql,2,8000)+')'

![](/syntaxhighlighting/OutliningIndicators/None.gif),@fdlist\=substring(@fdlist,2,8000)

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)exec@err\=sp\_oamethod@obj,'execute',@outout,@sql

![](/syntaxhighlighting/OutliningIndicators/None.gif)if@err<>0gotolberr

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)exec@err\=sp\_oadestroy@obj

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)\--导入数据

![](/syntaxhighlighting/OutliningIndicators/None.gif)set@sql\='openrowset(''MICROSOFT.JET.OLEDB.4.0'',''Excel8.0;HDR=YES

![](/syntaxhighlighting/OutliningIndicators/None.gif);DATABASE='+@path+@fname+''',\['+@sheetname+'$\])'

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)exec('insertinto'+@sql+'('+@fdlist+')select'+@fdlist+'from\['+@tbname+'\]')

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)set@sql\='droptable\['+@tbname+'\]'

![](/syntaxhighlighting/OutliningIndicators/None.gif)exec(@sql)

![](/syntaxhighlighting/OutliningIndicators/None.gif)return

![](/syntaxhighlighting/OutliningIndicators/None.gif)

![](/syntaxhighlighting/OutliningIndicators/None.gif)lberr:

![](/syntaxhighlighting/OutliningIndicators/None.gif)execsp\_oageterrorinfo0,@srcout,@descout

![](/syntaxhighlighting/OutliningIndicators/None.gif)lbexit:

![](/syntaxhighlighting/OutliningIndicators/None.gif)selectcast(@errasvarbinary(4))as错误号

![](/syntaxhighlighting/OutliningIndicators/None.gif),@srcas错误源,@descas错误描述

![](/syntaxhighlighting/OutliningIndicators/None.gif)select@sql,@constr,@fdlist

![](/syntaxhighlighting/OutliningIndicators/None.gif)go

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。