sql server 导出软件 sql server导出表数据 - 电脑|办公 - 电脑办公-杀毒安全-网络-V3学习网
微商网
 
 
导航:首页 |电脑|办公|正文

sql server 导出软件 sql server导出表数据

时间:2021-04-06 13:02:57
SQLServer中导入导出数据的方式有哪些? *--数据导出EXCEL 导出表中的数据到Excel,包含字段名,文件为真正的Excel文件 ,如果文件不存在,将自动创建文件 ,如果表不存在,将自动创
作者:

sql server 导出软件

SQLServer中导入导出数据的方式有哪些?

*--数据导出EXCEL 导出表中的数据到Excel,包含字段名,文件为真正的Excel文件 ,如果文件不存在,将自动创建文件 ,如果表不存在,将自动创建表 基于通用性考虑,仅支持导出标准数据类型 ---*/ /**//*--调用示例 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, N"IsProcedure") = 1) drop procedure [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=""+@sql+"";DBQ="+@sql else set @constr="Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="Excel 5.0;HDR=YES" +";DATABASE="+@sql+"""。

如何在SQLServer中谨慎导入导出大容量数据

在数据库初始化过程中,管理员需要面对的一个现实问题就是如何把大容量的数据导入到数据库系统中。

在SQLSeve数据库中提供了一些大容量数据导入导出的工具供数据库管理员实用。

如管理员可以通过cp实用工具,实现大容量导出数据和大容量导入数据并生成格式化文件。

如可以利用ulkinset语句将大容量数据直接从数据文件导入数据库表或者未分区的视图中去等等。

虽然在SQLSeve数据库中提供了这些实用工具。

不过管理员在实际工作中,仍然需要谨慎对待这项工作。

具体的来说,在大容量数据导入导出的过程中,需要注意如下几方面的内容。

一、尽量采用系统提供的工具来倒入导出大容量的数据 以上笔者提到的几款实用工具,他们有一个共同的特点,即在导入的过程中会对大容量的数据进行一定的优化。

如会规范一些数据的格式、节省导入导出的时间等等。

但是利用这些工具的话,跟其他普通的数据导入导出工具有一个差异,就是大容量导入操作不支持逗号分隔符文件中导入数据,也就是常说的文本文件。

虽然此时管理员也可以通过其他的工具来导入文件文件格式的大容量数据,但是通常情况下笔者不建议这么做。

因为其他的工具不支持导入过程中的优化功能。

为此笔者建议先用其他工具,如ACCESS等中间工具先把文本文件中的数据转化为普通的表格形式,然后再利用上面这些工具导入到系统中。

这虽然会增加一定的工作量,但是却可以保证大容量数据的质量。

为此,笔者在实际工作中,如果用户遇到这种问题笔者是强烈建议他们要采用系统提供的工具来导入导出大容量数据。

另外,利用格式化文件来提高大容量数据的规范化,也是一个不错的选择。

上面提到的几款大容量导入导出工具都支持使用专门的格式化文件来存储原始数据文件中每个字段的格式信息。

格式化文件还可以包含相应的数据库表的有关信息。

格式化文件可以用于提供从数据库实例大容量导出数据和向其中大容量导入数据时所需的所有格式信息。

通俗的讲,格式化文件提供了一种解释导入期间数据文件中数据的格式以及设置导出期间数据文件中数据格式的灵活方式。

这种灵活性使得解释数据时无需编写专用代码,也无需为满足数据库或外部应用程序的特殊需要而重新设置数据的格式。

如果灵活利用格式化文件,那么用户可以直接按需要的格式导出或者导入大容量数据,而不用事后再进行额外的格式调整。

二、选择合适的数据库日志操作模式 正如大家所知道的,用户在数据库中做的任何变化,都会记录在相关的日志中。

导入导出大容量数据也不例外。

可是由于大容量数据比较大,会占用比较大的事务日志功能。

为此笔者建议,在用户导入大容量数据之前,最好选择合适的数据库日志操作模式。

笔者的做法是,如果用户需要导入大容量数据,那么最好选择大容量日志恢复模式。

等到导入工作完成之后,再恢复到原先的模式。

这主要是因为在大容量日志模式下,对于大容量数据导入工作中说,支持力度相对来说比较好。

与其他日志恢复模式相比(如完全恢复模式),大容量日志恢复模式只对大容量操作进行最小记录。

为此大容量日志操作恢复模式保护大容量操作不受硬件故障的危害,提供比较好的性能并且占用日志的空间也是最小的。

所以,使用大容量日志恢复有助于防止事务日志出现空间不足的情况,因为大容量日志恢复不会插入日志行。

这个大容量日志操作模式,非常适用于使用完整恢复模式的数据库。

对无索引表执行大容量操作时,大容量日志恢复模式非常有用。

不过大容量日志操作模式也具有一定的风险。

如大容量日志恢复模式会增加这些大容量复制操作丢失数据的风险。

因为大容量日志操作模式将会阻止数据库系统捕获对每个事务逐一所做的更改。

如果日志备份包含大容量日志操作,则无法还原到该日志备份中的时点,而只能还原整个日志备份。

另外在大容量日志恢复模式下,如果日志备份覆盖了任何大容量操作,则日志备份将包含由大容量操作所更改的日志记录和数据页。

这对于捕获大容量日志操作的结果至关重要。

合并的数据区可使日志备份变得非常庞大。

再者,备份日志需要访问包含大容量日志事务的数据文件。

如果无法访问任何受影响的数据库文件,则事务日志将无法备份,并且在此日志中提交的所有操作都会丢失。

所以大容量日志备份模式并不是安全的日志模式。

三、考虑是否需要先暂时删除表的索引 引是一种特殊的文件,在数据库中它的作用是举足轻重的。

简单的来说,如果把数据库比喻成一本书的话,那么索引就好像是书的目录。

索引包含着对数据表里所有记录的引用指针。

索引可以提高数据库的性能,这是毋庸置疑的。

但是不是在任何场合索引都可以起到正面的效果。

在某些特殊情况下,其反而会降低一些操作的性能,如大容量数据的导入。

索引可以加快数据检索操作,但它会使数据修改操作变慢。

因为每次修改或者插入数据记录,索引就必须刷新一次。

也就是说,插入一百万条记录,则索引就必须重新所新一百万次。

可见,当大容量数据导入的时候,索引将耗费数据库大量的资源,从而降低数据库的性能。

如果目的表中有索引,那么不仅会...

SQLServer数据库导入导出数据方式有哪些不同?

在SQL Seve中主要有三种方式导入导出数据:使用Tansact-SQL对数据进行处理;调用命令行工具BCP处理数据;使用数据转换服务(DTS)对数据进行处理。

这三种方法各有其特点,下面就它们的主要特点进行比较。

一、使用方式的比较 1. 使用Tansact-SQL进行数据导入导出 我们很容易看出,Tansact-SQL方法就是通过SQL语句方式将相同或不同类型的数据库中的数据互相导入导出或者汇集在一处的方法。

如果是在不同的SQL Seve数据库之间进行数据导入导出,那将是非常容易做到的。

一般可使用SELECT INTO FROM和INSERT INTO。

使用 SELECT INTO FROM时INTO后跟的表必须存在,也就是说它的功能是在导数据之前先建立一个空表,然后再将源表中的数据导入到新建的空表中,这就相当于表的复制(并不会复制表的索引等信息)。

而INSERT INTO的功能是将源数据插入到已经存在的表中,可以使用它进行数据合并,如果要更新已经存在的记录,可以使用UPDATE。

SELECT * INTO tale2 FROM tale1 --tale1和tale2的表结构相同 INSERT INTO tale2 SELECT * FROM tale3 --tale2和tale3的表结构相同 当在异构数据库之间的进行数据导入导出时,情况会变得复杂得多。

首先要解决的是如何打开非SQL Seve数据库的问题。

在SQL Seve中提供了两个函数可以根据各种类型数据库的OLE DB Povide打开并操作这些数据库,这两个函数是OPENDATASOURCE和OPENROWSET。

它们的功能基本上相同,不同之处主要有两点。

(1) 调用方式不同。

OPENDATASOURCE的参数有两个,分别是OLE DB Povide和连接字符串。

使用OPENDATASOURCE只相当于引用数据库或者是服务(对于SQL Seve、Oacle等数据库来说)。

要想引用其中的数据表或视图,必须在OPENDATASOURCE(...)后进行引用。

在SQL Seve中通过OPENDATASOURCE查询Access数据库ac.md中的tale1表 SELECT * FROM OPENDATASOURCE("Micosoft.Jet.OLEDB.4.0", "Povide=Micosoft.Jet.OLEDB.4.0;Data Souce=ac.md;Pesist Secuity Info=False")... tale1 OPENROWSET相当于一个记录集,可以将直接当成一个表或视图使用。

在SQL Seve中通过OPENROWSETE查询Access数据库ac.md中的tale1表 SELECT * FROM OPENROWSET("Micosoft.Jet.OLEDB.4.0", "ac.md"; "admin";"","SELECT * FROM tale1") (2) 灵活度不同。

OPENDATASOURCE只能打开相应数据库中的表或视图,如果需要过滤的话,只能在SQL Seve中进行处理。

而OPENROWSET可以在打开数据库的同时对其进行过滤,如上面的例子,在OPENROWSET中可以使用SELECT * FROM tale1对ac.md中的数据表进行查询,而OPENDATASOURCE只能引用tale1,而无法查询tale1。

因此,OPENROWSET比较OPENDATASOURCE更加灵活。

【怎么上传sql数据库】如何导入和导出SQL里面的数据?数据库里的...

导出导入SQL Seve里某个数据库 1.在SQL Seve企业管理器里选中要转移的数据库,按鼠标右键,选所有任务-备份数据库。

2.备份 选数据库-完全,目的 备份到 按添加按钮 文件名 在SQL Seve服务器硬盘下输入一个自定义的备份数据库文件名(后缀一般是ak) 重写 选重写现有媒体 最后按确定按钮。

如果生成的备份数据库文件大于1M,要用压缩工具压缩后再到Intenet上传输。

3.通过FTP或者emote desktop或者pcanywhee等方法 把第二步生成的备份数据库文件或者其压缩后的文件传到目的SQL Seve数据库,如果有压缩要解压。

4.目的SQL Seve数据库如果还没有此数据库,先创建一个新的数据库; 然后选中这个新创建的数据库,按鼠标右键,选所有任务-还原数据库 还原-从设备-选择设备-磁盘-添加(找到要导入的备份数据库文件名)-确定 还原备份集-数据库-完全 最后按确定按钮。

完全的数据库导入成功了。

(如果在已经存在的SQL Seve数据库上还原数据库可能遇到有还有其它人正在使用它而恢复****做失败, 可以去看 -管理-当前活动-锁对象-找到数据库下锁的进程号-到查询分析器里用kill 进程号杀掉这些锁,然后再做还原) 注意:如果在原有的目的SQL Seve数据库上从备份文件(*.ak)还原数据库会把已经存在的表、存储过程等数据库对象全部替换成最近这次导入的备份数据库里的内容。

如果一定要还原备份文件(*.ak)里部分数据,需要另外建一个新数据库,其逻辑名称和数量同备份文件(*.ak)里数据库的逻辑名称和数量一致; 新数据库的物理文件名称取得一定要和备份文件(*.ak)里数据库的物理文件不一样才行。

怎么导出sql server脚本

怎么导出sql server脚本1.使用SQL Server Management Studio 2008 连接数据库。

2.选中要导出数据的数据库节点,点鼠标右键,在菜单中选择“任务”->“生成脚本3.在弹出的欢迎界面中,点“下一步”4.在选择数据库界面,选择对应的数据库,单击“下一步”

Microsoft SQL Server是什么软件

简单的说就是 微软推出的【数据库软件】Microsoft SQL ServerSQLSQL是英文Structured Query Language的缩写,意思为结构化查询语言。

SQL语言的主要功能就是同各种数据库建立联系,进行沟通。

按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。

SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。

目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准。

虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select, Insert, Update, Delete, Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。

SQL ServerSQL Server 是一个关系数据库管理系统。

它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。

在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。

Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。

SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统,该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能。

具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。

sql server 2008怎样导出脚本

sql server 2005 中的数据库怎么导出.sql文件?打开SQL Server Management Studio,连接到你的SQL Server实例,在对象管理器(Object Explorer)中,选中要生成.sql文件的数据库, 按鼠标右键,在弹出的菜单中选择”任务“(Tasks),再选择”生成脚本"(Generate Scripts),然后会弹出一个向导,根据向导就可以将整个数据库的定义生成一个.sql的脚本文件。

表中的数据不会包含在脚本文件中。

通过向导设置,也可以只为数据库中的一部分对象生成脚本。

大家还关注
    
阅读排行
推荐阅读