1. 首页 > 科技

SQL Server 的导出功能可以包含? sqlserver怎么导出数据库

SQL Server 的导出功能可以包含?sqlserver怎么导出数据库

sqlserver怎么导出数据库

材料/工具:SQL Server

1、打开SQL Server,找到需要导出的数据库。

2、在需要导出的数据库上右击,选择任务选项中的导出数据选项。

3、SQL Server导入和导出向导窗口中,单击下一步按钮。

4、选择数据源对话框中,选择数据源选项中的Microsoft OLE DB Provider for SQL Server选项。

5、选择使用SQL Server身份验证,输入用户名和密码,选择要导出的数据库,单击下一步。

6、选择目标对话框中,选择目标选项中的Microsoft OLE DB Provider for SQL Server选项。

7、选择使用SQL Server身份验证,输入用户名和密码,单击新建按钮。

8、出现的创建数据库窗口中,在名称处输入一个导出数据库的名字,本例为NewData。

9、可以看到在数据库选项中,多出了一个NewData的名称,单击下一步。

10、指定复制或查询对话框中,选择复制一个或多个表或视图的数据选项,单击下一步。

11、选择源表和源视图对话框中,选择自己要导出的表和视图。

12、运行包对话框中,单击完成按钮,数据就成功导出了。

sql server 数据导出到文本文件

展开全部

将数据库分离后,在C:\Program Files\Microsoft SQL Server\MSSQL\Data

就可以看到数据库文件,复制数据库文件到另外一台机子,在把数据库附加上就可以了

打开企业管理后,右键数据库(你要的那个)->所有任务->点击‘生成SQL脚本’->在弹出的新页中,点击‘全部显示’->'写全部对象脚本’的沟打上->点击确定,->给文件命名->保存就可以了,

数据库的导入与导出

导出数据库命令:

mysqldump -u root -p mydb2 > e:\mydb.sql 

把数据库mydb2导出到e盘的mydb.sql

注意:在dos下进入mysql安装的bin目录下,但是不要登陆。

导入数据库命令:

mysqldump -u root -p mydb2 < e:\mydb.sql 

把数据库e盘的mydb.sql导入到mydb2

注意:要先新建mydb2 然后使用导入语句

 

oracle 用户创建 数据库的导入导出imp/exp

可以在SQLPLUS.EXE或者DOS(命令行)中执行执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,

DOS中可以执行时由于 在oracle 8i 中 安装目录ora81BIN被设置为全局路径,

该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。

创建用户

给用户增加导入数据权限的操作

第一,启动sql*puls

第二,以system/manager登陆

第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略)

第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,

   DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,

    DBA,CONNECT,RESOURCE,CREATE SESSION TO 用户名字

第五, 运行-cmd-进入dmp文件所在的目录,

    imp userid=system/manager full=y file=*.dmp

    或者 imp userid=system/manager full=y file=filename.dmp

执行示例:

F:WorkOracle_Databackup>imp userid=test/test full=y file=inner_notify.dmp 17jquery

下面介绍的是导入导出的实例。

数据导出:

1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中

   exp system/manager@TEST file=d:daochu.dmp full=y

   exp fang/fang@ORCL file=d:oais20100401.dmp full=y

   exp oais/oais@ORCL file=d:oais_mj.dmp full=y

2 将数据库中system用户与sys用户的表导出

   exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)

3 将数据库中的表inner_notify、notify_staff_relat导出

    exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)

    exp fang/fang@ORCL file=d:oais20100401_essmenu.dmp tables=(essmenu)

4 将数据库中的表table1中的字段filed1以"00"打头的数据导出

   exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"

上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。

也可以在上面命令后面 加上 compress=y 来实现。 一起jquery,17jquery

数据的导入

1 将D:daochu.dmp 中的数据导入 TEST数据库中。

   imp system/manager@TEST file=d:daochu.dmp

   imp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y

   上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。

   在后面加上 ignore=y 就可以了。

2 将d:daochu.dmp中的表table1 导入

imp system/manager@TEST file=d:daochu.dmp tables=(table1)

基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。

MSSQL的導入導出有三種方法,不可以在cmd模式下進行:

1.使用Transact-SQL进行数据导入导出

我们很容易看出,Transact-SQL方法就是通过SQL语句方式将相同或不同类型的数据库中的数据互相导入导出或者汇集在一处的方法。如果是在不同的SQL Server数据库之间进行数据导入导出,那将是非常容易做到的。一般可使用SELECT INTO FROM和INSERT INTO。使用 SELECT INTO FROM时INTO后跟的表必须存在,也就是说它的功能是在导数据之前先建立一个空表,然后再将源表中的数据导入到新建的空表中,这就相当于表的复制(并不会复制表的索引等信息)。而INSERT INTO的功能是将源数据插入到已经存在的表中,可以使用它进行数据合并,如果要更新已经存在的记录,可以使用UPDATE。

SELECT * INTO table2 FROM table1

--table1和table2的表结构相同

INSERT INTO table2 SELECT * FROM table3

--table2和table3的表结构相同

当在异构数据库之间的进行数据导入导出时,情况会变得复杂得多。首先要解决的是如何打开非SQL Server数据库的问题。

在SQL Server中提供了两个函数可以根据各种类型数据库的OLE DB Provider打开并操作这些数据库,这两个函数是OPENDATASOURCE和OPENROWSET。它们的功能基本上相同,不同之处主要有两点。

2. 使用命令行BCP导入导出数据

很多大型的系统不仅仅提供了友好的图形用户接口,同时也提供了命令行方式对系统进行控制。在SQL Server中除了可以使用SQL语句对数据进行操作外,还可以使用一个命令行工具BCP对数据进行同样的操作。BCP是基于DB-Library 客户端库的工具。它的功能十分强大,BCP能够以并行方式将数据从多个客户端大容量复制到单个表中,从而大大提高了装载效率。但在执行并行操作时要注意的是只有使用基于 ODBC 或 SQL OLE DB 的 API 的应用程序才可以执行将数据并行装载到单个表中的操作。

BCP可以将SQL Server中的数据导出到任何OLE DB所支持的数据库的,如下面的语句是将authors表导出到excel文件中。

bcp pubs.dbo.authors out c:\temp1.xls

-c -q -S"GNETDATA/GNETDATA" -U"sa" -P"password"

BCP不仅能够通过命令行执行,同时也可以通过SQL执行,这需要一个系统存储过程xp_cmdshell来实现,如上面的命令可改写为如下形式。

EXEC master..xp_cmdshell 'bcp pubs.dbo.authors out

c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P"password"'

3. 使用数据转换服务(DTS)导入导出数据

DTS是SQL Server中导入导出数据的核心,它除有具有SQL和命令行工具BCP相应的功能外,还可以灵活地通过VBScript、JScript等脚本语言对数据进行检验、净化和转换。

SQL Server为DTS提供了图形用户接口,用户可以使用图形界面导入导出数据,并对数据进行相应的处理。同时,DTS还以com组件的形式提供编程接口,也就是说任何支持com组件的开发工具都可以利用com组件使用DTS所提供的功能。DTS在SQL Server中可以保存为不同的形式,可以是包的形式,也可以保存成Visual Basic源程序文件,这样只要在VB中编译便可以使用DTS com组件了。

DTS和其它数据导入导出方式最大的不同就是它可以在处理数据的过程中对每一行数据进行深度处理。以下是一段VBScript代码,这段代码在处DTS理每一条记录时执行,DTSDestination表示目标记录,DTSSource表示源记录,在处理“婚姻状况”时,将源记录中的“婚姻状况”中的0或1转换成目标记录中“已婚”或“未婚”。

Function Main()

DTSDestination("姓名") = DTSSource("姓名")

DTSDestination("年龄") = DTSSource("年龄")

If DTSDestination("婚姻状况") = 1 Then

DTSDestination("婚姻状况") = "已婚"

Else

DTSDestination("婚姻状况") = "未婚"

End If

Main = DTSTransformStat_OK

End Function

怎么把sqlserver的数据导出.sql文件

具体看下2113面:

这是利用BCP来做的,

使用SQLServer自带的bcp命令——5261

bcp 数据库名.dbo.表名4102 out 文件名 –c –q –S”服务器1653名” –U”用户名” –P”密码”

bcp ”select 语句” queryout 文件名 –c –q –S”服务器名” –U”用户名” –P”密码”

导出整张表:

EXEC master..xp_cmdshell 'bcp "inter_custom.dbo.out_ck1" out c:\Temp.xls -c -q -S"PETER" -U"sa" -P"davey@citiz"'

根据Query语句导出:

EXEC master..xp_cmdshell 'bcp "select * from inter_custom.dbo.out_ck1" queryout c:\Temp.xls -c -q -S"PETER" -U"sa" -P"davey@citiz"'

利用bcp要求数据库的服务器名,数据库用户名和密码,这些必须传到程序中。方法可以有很多中,大概的例子,可以看:

wwwblogs/kevin/archive/2004/09/21/45351.html

利用openrowset可以写存储过程,可以看下面的例子

引自CSDN的邹建大大

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_exporttb]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)

drop procedure [dbo].[p_exporttb]

GO

/*--数据导出EXCEL

导出查询中的数据到Excel,包含字段名,文件为真正的Excel文件

如果文件不存在,将自动创建文件

如果表不存在,将自动创建表

基于通用性考虑,仅支持导出标准数据类型

--邹建 2003.10(引用请保留此信息)--*/

/*--调用示例

p_exporttb @sqlstr='select * from 地区资料'

,@path='c:\',@fname='aa.xls',@sheetname='地区资料'

--*/

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

从DataGrids中导出数据到Excel

DataSet结果导出到Excel

Export DataSets to Excel...

导出到Excel的四种方法

关于从net程序如何导出到excel微软的msdn有专门的讲述,在上面可以搜到。