当前位置:首页 » 编程语言 » sql语句怎么导出文档
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql语句怎么导出文档

发布时间: 2022-07-12 18:19:51

Ⅰ 如何用sql 语句从sql server 2008里面导出数据

方法/步骤1

打开SQL Server2008数据库的 Management Studio管理工具。

进入数据库后,选择我们需要进行操作的数据库,并在数据库的名称上点击鼠标右键
找到任务 里面的 生成脚本

选择需要进行操作的数据库,并点击 下一步 按钮

在脚本选项里面找到 编写数据脚本将后面的FALSE修改为 TRUE,之后点击下一步按钮

选择对象类型时,可以根据自己的需求选择表,视图,存储过程等等操作,现在我以表为例子进行操作,并点击 下一步按钮

选择要进行操作的表名称,记得前面的架构必须要勾选上,并点击 下一步按钮

选择导出SQl脚本的存放位置,例子中我放到了Documents(文档)里面,此时点击下一步按钮或者完成按钮既可。

当数据导出完成后会看到提示,之后我们用记事本把script.sql文件打开就看到里面是带有数据的SQL脚本了。

Ⅱ sql怎么把查询结果根据语句导出为txt文件,同时还有显示结果

在标签上右键保存,更改后缀为txt
就保存了
语句
在结果
上全选
连标题复制
然后保存
为excel表格

Ⅲ 如何使用SQL语句将Oracle数据库表导出为TXT文件

可用spool的方式将oracle的数据导出成文本。

1、登录sqlplus到指定数据库。

2、在某一路径,如c盘data目录下,创建脚本,文件名为:导出脚本.sql 内容如下:

set colsep '|' --设置|为列分隔符

settrimspoolon
setlinesize120
setpagesize2000
setnewpage1
setheadingoff
settermoff
setnum18
setfeedbackoff
spoolc:data导出.txt
select*fromemp;
spooloff

3、执行命令:

@C:data导出脚本.sql

4、执行结束后,c盘data目录下会生成导出.txt的文件,里边内容就是导出表中的内容。

Ⅳ 怎么把SQL的数据导出成excel

/*===========================================*/
--假如从sql数据库中,导出数据到excel,假如excel文档已存在,而且已按照要接收的数据创建好表头,就能够简单的用:
insert into openrowset(microsoft.jet.oledb.4.0
,excel 5.0;hdr=yes;database=c:test.xls,sheet1$)
select * from 表

--假如excel文档不存在,也能够用bcp来导成类excel的文档,注意大小写:
--导出表的情况
exec master..xp_cmdshell bcp 数据库名.dbo.表名 out "c:test.xls" /c -/s"服务器名" /u"用户名" -p"密码"

--导出查询的情况
exec master..xp_cmdshell bcp "select au_fname, au_lname from pubs..authors order by au_lname" queryout "c:test.xls" /c -/s"服务器名" /u"用户名" -p"密码"

/*--说明:
c:test.xls 为导入/导出的excel文档名.
sheet1$ 为excel文档的工作表名,一般要加上$才能正常使用.
--*/
--上面已说过,用bcp导出的是类excel文档,其实质为文本文档,

--要导出真正的excel文档.就用下面的方法

/*--数据导出excel

导出表中的数据到excel,包含字段名,文档为真正的excel文档
,假如文档不存在,将自动创建文档
,假如表不存在,将自动创建表
基于通用性考虑,仅支持导出标准数据类型
--邹建 2003.10--*/

/*--调用示例

p_exporttb @tbname=地区资料,@path=c:,@fname=aa.xls
--*/
if exists (select * from dbo.sysobjects where id = object_id(n[dbo].[p_exporttb]) and objectproperty(id, nisprocere) = 1)
drop procere [dbo].[p_exporttb]
go

create proc p_exporttb
@tbname sysname, --要导出的表名
@path nvarchar(1000), --文档存放目录
@fname nvarchar(250)= --文档名,默认为表名
as
declare @err int,@src nvarchar(255),@desc nvarchar(255),@out int
declare @obj int,@constr nvarchar(1000),@sql varchar(8000),@fdlist varchar(8000)

--参数检测
if isnull(@fname,)= set @fname=@tbname+.xls

--检查文档是否已存在
if right(@path,1)<> set @path=@path+
create table #tb(a bit,b bit,c bit)
set @sql=@path+@fname
insert into #tb exec master..xp_fileexist @sql

--数据库创建语句
set @sql=@path+@fname
if exists(select 1 from #tb where a=1)
set @constr=driver={microsoft excel driver (*.xls)};dsn=;readonly=false
+;create_db=" +;database=+@sql+"

--连接数据库
exec @err=sp_oacreate adodb.connection,@obj out
if @err<>0 goto lberr

exec @err=sp_oamethod @obj,open,null,@constr
if @err<>0 goto lberr

/*--假如覆盖已存在的表,就加上下面的语句
--创建之前先删除表/假如存在的话
select @sql=drop table [+@tbname+]
exec @err=sp_oamethod @obj,execute,@out out,@sql
--*/

--创建表的sql
select @sql=,@fdlist=
select @fdlist=@fdlist+,[+a.name+]
,@sql=@sql+,[+a.name+]
+case when b.name in(char,nchar,varchar,nvarchar) then
text(+cast(case when a.length>255 then 255 else a.length end as varchar)+)
when b.name in(tynyint,int,bigint,tinyint) then int
when b.name in(smalldatetime,datetime) then datetime
when b.name in(money,smallmoney) then money
else b.name end
from syscolumns a left join systypes b on a.xtype=b.xusertype
where b.name not in(image,text,uniqueidentifier,sql_variant,ntext,varbinary,binary,timestamp)
and object_id(@tbname)=id
select @sql=create table [+@tbname
+](+substring(@sql,2,8000)+)
,@fdlist=substring(@fdlist,2,8000)
exec @err=sp_oamethod @obj,execute,@out out,@sql
if @err<>0 goto lberr

exec @err=sp_oadestroy @obj

--导入数据
set @sql=openrowset(microsoft.jet.oledb.4.0,excel 5.0;hdr=yes
;database=+@path+@fname+,[+@tbname+$])

exec(insert into +@sql+(+@fdlist+) select +@fdlist+ from +@tbname)

return

lberr:
exec sp_oageterrorinfo 0,@src out,@desc out
lbexit:
select cast(@err as varbinary(4)) as 错误号
,@src as 错误源,@desc as 错误描述
select @sql,@constr,@fdlist
go
--上面是导表的,下面是导查询语句的.

/*--数据导出excel

导出查询中的数据到excel,包含字段名,文档为真正的excel文档
,假如文档不存在,将自动创建文档
,假如表不存在,将自动创建表
基于通用性考虑,仅支持导出标准数据类型
--邹建 2003.10--*/

/*--调用示例

p_exporttb @sqlstr=select * from 地区资料
,@path=c:,@fname=aa.xls,@sheetname=地区资料
--*/
if exists (select * from dbo.sysobjects where id = object_id(n[dbo].[p_exporttb]) and objectproperty(id, nisprocere) = 1)
drop procere [dbo].[p_exporttb]
go

create proc p_exporttb
@sqlstr varchar(8000), --查询语句,假如查询语句中使用了order by ,请加上top 100 percent
@path nvarchar(1000), --文档存放目录
@fname nvarchar(250), --文档名
@sheetname varchar(250)= --要创建的工作表名,默认为文档名
as
declare @err int,@src nvarchar(255),@desc nvarchar(255),@out int
declare @obj int,@constr nvarchar(1000),@sql varchar(8000),@fdlist varchar(8000)

--参数检测
if isnull(@fname,)= set @fname=temp.xls
if isnull(@sheetname,)= set @sheetname=replace(@fname,.,#)

--检查文档是否已存在
if right(@path,1)<> set @path=@path+
create table #tb(a bit,b bit,c bit)
set @sql=@path+@fname
insert into #tb exec master..xp_fileexist @sql

--数据库创建语句
set @sql=@path+@fname
if exists(select 1 from #tb where a=1)
set @constr=driver={microsoft excel driver (*.xls)};dsn=;readonly=false
+;create_db=" +;database=+@sql+"

--连接数据库
exec @err=sp_oacreate adodb.connection,@obj out
if @err<>0 goto lberr

exec @err=sp_oamethod @obj,open,null,@constr
if @err<>0 goto lberr

--创建表的sql
declare @tbname sysname
set @tbname=##tmp_+convert(varchar(38),newid())
set @sql=select * into [+@tbname+] from(+@sqlstr+) a
exec(@sql)

select @sql=,@fdlist=
select @fdlist=@fdlist+,[+a.name+]
,@sql=@sql+,[+a.name+]
+case when b.name in(char,nchar,varchar,nvarchar) then
text(+cast(case when a.length>255 then 255 else a.length end as varchar)+)
when b.name in(tynyint,int,bigint,tinyint) then int
when b.name in(smalldatetime,datetime) then datetime
when b.name in(money,smallmoney) then money
else b.name end
from tempdb..syscolumns a left join tempdb..systypes b on a.xtype=b.xusertype
where b.name not in(image,text,uniqueidentifier,sql_variant,ntext,varbinary,binary,timestamp)
and a.id=(select id from tempdb..sysobjects where name=@tbname)
select @sql=create table [+@sheetname
+](+substring(@sql,2,8000)+)
,@fdlist=substring(@fdlist,2,8000)

exec @err=sp_oamethod @obj,execute,@out out,@sql
if @err<>0 goto lberr

exec @err=sp_oadestroy @obj

--导入数据
set @sql=openrowset(microsoft.jet.oledb.4.0,excel 5.0;hdr=yes
;database=+@path+@fname+,[+@sheetname+$])

exec(insert into +@sql+(+@fdlist+) select +@fdlist+ from [+@tbname+])

set @sql=drop table [+@tbname+]
exec(@sql)
return

lberr:
exec sp_oageterrorinfo 0,@src out,@desc out
lbexit:
select cast(@err as varbinary(4)) as 错误号
,@src as 错误源,@desc as 错误描述
select @sql,@constr,@fdlist
go

Ⅳ 怎么把SQL数据库表的结构导出到Word

首先将SQL数据导出到EXCEL:
在SQL数据库的很多应用场景中,需要将SQL中的某个数据库或查询的结果导出到EXCEL中,因为Excel更容易对数据处理和方便用户邮箱传输。本次经验归纳了SQL数据表导出到EXCEL中的三种方法:
1、复制粘贴,将SQL查询语句按指定条件导出数据;——适合小量数据。
2、导出完整的SQL数据表为Excel文件;——适合大量数据。
3、定时自动导出指定SQL数据表为Excel文件;——适合大量数据。
其它:DTS数据转换服务导入导出向导或者DTS设计器创建DTS包;

然后再把excel 转换word
分两个步骤:
1.07版EXCEL 的专用文件格式为xlsx,03版的格式为xls;
A.EXCEL打开这个文件,选择另存为(快捷键F12)在下面的版本中选择97-2003格式就可以了;
B.假如你的OFFICE 是2003 ,可以装一个office2007兼容包,就可以用03打开07版本的文件了,然后在下面的版本中选择97-2003格式就可以了;
2.打开WORD 。启动WORD→新建文档→插入→对象→microsoft Excel工作表→由文件创建→浏览→找到xls文件双击→(可以选择工作表,更改版式等操作)→保存为.doc后缀即可。

Ⅵ 如何利用SQL查询语句从SQLSERVER数据库中导入导出EXCEL表格

一、从excel表导入到SQLSERVER
use test
go
select * into test_table from
OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=c:\11.xls;','select * from [结果$]')
--1.通过Sql Server查询分析器查询D:\abc.xls 里面表 sheet1
SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="D:\abc.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
--2.如果表a存在,并且表a的结构与上一步的查询的结构一样
可以使用
insert into a SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="D:\abc.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
--3.如果表a不存在,使用into a
SELECT * into a FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="D:\abc.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
说明:test_table为SQLSERVER数据库中的表,11.xls是EXCEL表,[结果$]是EXCEL表中的工作表,注意写法是工作表名加上$符号。
2从SQLSERVER数据库中导出到EXCEL(一般用语句导库是在应用程序中,利用各种语言实现,如果不做开发项目,用DTS就很好了,在
SQLSERVER查询器中利用单条SQL语句实现导入导出不方便,类型转换是个问题,不好解决)
第一种,无法导入字段名:(excel表不存在,新建)
EXEC master..xp_cmdshell
'bcp zhou.dbo.数据库表名 out "c:\test.xls" /c /S "服务器名" /U "用户名" -P "密码" '
第二种,excel文件已存在,要手工把表字段名填到excel文件中去,再执行下面:
insert into OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 8.0;HDR=YES;DATABASE=c:\文件名.xls',sheet1$)
select * from 表名
第三种,想实现全自动转字段名和记录,一条语句实现不了,要用到过程,当然如果要做一个自动转换程序,用VB或者VC语言也可实现。
把下面的过程全拷入SQLSERVER查询分析器,执行,生成一个过程,过程名为:p_exporttb,然后按应用例子执行过程就OK了,自
动导表
/*******************************/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_exporttb]') and OBJECTPROPERTY(id, N'IsProcere') = 1)
drop procere [dbo].[p_exporttb]
GO
create proc p_exporttb
@sqlstr varchar(8000), --查询语句,如果查询语句中使用了order by ,请加上top 100 percent
@path nvarchar(1000), --文件存放目录
@fname nvarchar(250), --文件名
@sheetname varchar(250)='' --要创建的工作表名,默认为文件名
as
declare @err int,@src nvarchar(255),@desc nvarchar(255),@out int
declare @obj int,@constr nvarchar(1000),@sql varchar(8000),@fdlist varchar(8000)
--参数检测
if isnull(@fname,'')='' set @fname='temp.xls'
if isnull(@sheetname,'')='' set @sheetname=replace(@fname,'.','#')
--检查文件是否已经存在
if right(@path,1)<>'\' set @path=@path+'\'
create table #tb(a bit,b bit,c bit)
set @sql=@path+@fname
insert into #tb exec master..xp_fileexist @sql
--数据库创建语句
set @sql=@path+@fname
if exists(select 1 from #tb where a=1)
set @constr='DRIVER={Microsoft Excel Driver (*.xls)};DSN='''';READONLY=FALSE'
+';CREATE_DB="'+@sql+'";DBQ='+@sql
else
set @constr='Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="Excel 8.0;HDR=YES'
+';DATABASE='+@sql+'"'
--连接数据库
exec @err=sp_oacreate 'adodb.connection',@obj out
if @err<>0 goto lberr
exec @err=sp_oamethod @obj,'open',null,@constr
if @err<>0 goto lberr
--创建表的SQL
declare @tbname sysname
set @tbname='##tmp_'+convert(varchar(38),newid())
set @sql='select * into ['+@tbname+'] from('+@sqlstr+') a'
exec(@sql)
select @sql='',@fdlist=''
select @fdlist=@fdlist+',['+a.name+']'
,@sql=@sql+',['+a.name+'] '
+case
when b.name like '%char'
then case when a.length>255 then 'memo'
else 'text('+cast(a.length as varchar)+')' end
when b.name like '%int' or b.name='bit' then 'int'
when b.name like '%datetime' then 'datetime'
when b.name like '%money' then 'money'
when b.name like '%text' then 'memo'
else b.name end
FROM tempdb..syscolumns a left join tempdb..systypes b on a.xtype=b.xusertype
where b.name not in('image','uniqueidentifier','sql_variant','varbinary','binary','timestamp')
and a.id=(select id from tempdb..sysobjects where name=@tbname)
if @@rowcount=0 return
select @sql='create table ['+@sheetname
+']('+substring(@sql,2,8000)+')'
,@fdlist=substring(@fdlist,2,8000)
exec @err=sp_oamethod @obj,'execute',@out out,@sql
if @err<>0 goto lberr
exec @err=sp_oadestroy @obj
--导入数据
set @sql='openrowset(''MICROSOFT.JET.OLEDB.4.0'',''Excel 8.0;HDR=YES
;DATABASE='+@path+@fname+''',['+@sheetname+'$])'
exec('insert into '+@sql+'('+@fdlist+') select '+@fdlist+' from ['+@tbname+']')
set @sql='drop table ['+@tbname+']'
exec(@sql)
return
lberr:
exec sp_oageterrorinfo 0,@src out,@desc out
lbexit:
select cast(@err as varbinary(4)) as 错误号
,@src as 错误源,@desc as 错误描述
select @sql,@constr,@fdlist
go

Ⅶ 如何用sql语句导出csv文件

1.导出本地数据库数据到本地文件
MySQL
-A
service_db
-h
your_host
-utest
-ptest
mysql>
select
*
from
t_apps
where
created>'2012-07-02
00:00:00'
into
outfile
/tmp/apps.csv
2.导出远程数据库数据到本地文件
mysql
-A
service_db
-h
your_host
-utest
-ptest
-ss
-e
"SELECT
*
from
t_apps
limit
300;"
|
sed
's/\t/","/g;s/^/"/;s/$/"/;s/\n//g'
>
apps.csv
(sed部分可略,尤其是处理包含汉字的数据时.
如果内容包含中文,可在select语句前加入set
names
utf8;)
3.使用mysqlmp导出远程或本地数据到本地文件
mysqlmp
-h
your_host
-utest
-ptest
-w
"id<300"
service_db
t_apps
>
tt.sql
如果只导数据加上
-t
or
--no-create-
info
;
如果只导结构加上
-d
or
--no-data;
4.
mysqlmp不能指定导出的列,变通方法如下:
mysql
-u
USERNAME
--password=PASSWORD
--database=DATABASE
--execute='SELECT
`FIELD`,
`FIELD`
FROM
`TABLE`
LIMIT
0,
10000
'
-X
>
file.csv

Ⅷ 如何把SQL语句的查询结果保存到文件中

pl/sql developper 的话通过导出按钮就可以保存sql的查询结果:

Ⅸ 如何用SQL语句把表数据导出到TXT文件

1、简单方法
SELECT *
FROM TableX

查询结果Save As,或者Copy/Paste出来。

2、如果为了导入到另一个DB中,则要生成INSERT语句,那就复杂了(也要比较强的SQL编程能力)。通常还是用工具软件的好。