从sql server中导入导出 excel 的基本方法

合集下载

【Sqlserver】查询结果导出excel

【Sqlserver】查询结果导出excel
博客园 用户登录 代码改变世界 密码登录 短信登录 忘记登录用户名 忘记密码 记住我 登录 第三方登录/注册 没有账户, 立即注册
【 Sqlserver】查询结果导出 excel
1.右键数据库——》任务——》导出数据,打开SQL Server导入和导出向导; 2.选择当前数据库,填写用户名,密码,下一步; 3.选择目标类型要传输的数据(W),可以直接按W,下一步; 5.写入查询SQL语句,点击分析检测语句,下一步; 6.编辑映射关系,预览效果,下一步; 7.下一步,至完成;
注:这种方式可以解决直接复制查询结果时,如身份证号等长数字字符串,在excel中自动转成数字型,导致显示不正确。

SQLServer读取及导入Excel数据

SQLServer读取及导入Excel数据

SQLServer读取及导⼊Excel数据⼀、引⾔使⽤SQL Server的OPENROWSET及OPENDATASOURCE函数,可以像查询数据表⼀样来读取Excel数据。

但是,要想让这两个函数能正常运⾏,可不是那么容易,假如没理解或没配置好的话,⼀路的报错会让你怀疑⼈⽣。

⼆、配置2.1、组件安装要想使⽤OPENROWSET及OPENDATASOURCE函数来读取Excel数据,⾸先要在⽬标的SQL Server主机上安装AccessDatabaseEngine组件。

1)换句话说:假如要操作的数据库是在本地的,那我在本地安装AccessDatabaseEngine即可;假如要操作的数据库安装在远程的服务器上,那么需在远程的服务器上安装AccessDatabaseEngine。

2)需要说明的是,读取Excel数据,只需安装AccessDatabaseEngine,并不⼀定要安装Office。

3)依⽬标的SQL Server主机的操作系统位数,来对应安装AccessDatabaseEngine版本。

本处Excel是2013版本(.xlsx),需安装Microsoft Access Database Engine 2010 Redistributable。

2.2、服务配置在⽬标的SQL Server主机上,Win+R调出运⾏,输⼊services.msc调出服务。

将SQL Server (MSSQLSERVER)、SQL Full-text Filter Daemon Launcher (MSSQLSERVER)两个服务的登录⾝份,改为本地系统账户。

2.3、参数配置在⽬标的SQL Server上打开查询分析器,执⾏以下语句:--1、开启导⼊功能(查看参数:exec sp_configure)exec sp_configure 'show advanced options',1reconfigureexec sp_configure 'Ad Hoc Distributed Queries',1reconfigure--2、允许在进程中使⽤ACE.OLEDB.12.0exec master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1--3、允许动态参数exec master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 12.3.1、开启导⼊功能对应的系统界⾯:2.3.2、允许在进程中使⽤ACE.OLEDB.12.0及允许动态参数对应的系统界⾯:三、测试3.1、测试语句在⽬标的SQL Server上打开查询分析器,执⾏以下语句:--1、使⽤查询分析器查询EXCEL--注意1:若连接的是本机的数据库,E:\EDI\年度返利费⽤表.xlsx指的是本机的⽂件路径。

数据库sql server导出为excel

数据库sql server导出为excel
数据库sql server导出为excel
首先打开sqlserver,登陆,界面如图所示,展开数据库列表,
选择要导出的数据所在的表询后会新建一个查询sql的tab面板,注意上面要是自己查询的数据库,在tab中写入查询语句,这里就写简单的查询语句:select*from A回车
选择所写的查询语句(如果整个tab面板中只有这句查询语句则不用选择)点击上方的执行。
此时看到下方的界面中出现查询得到的结果,在结果上任意位置鼠标右击,出现菜单。
选择“将结果另存为”
选择好路径。
返回到文件夹,打开刚才的文件就有了。

SQL数据库表如何导入导出到EXCEL中

SQL数据库表如何导入导出到EXCEL中

一.导出1.选择要导出的数据库表,右键选择“所有任务”,点击“所有任务”下的子菜单“Export Data…”进入“DTS Import/Export Wizard”窗口。

2.点击“下一步”,进入“Choose a Data Source”。

3.“Data Source”更改为“Microsoft OLE DB Provider for SQL Server”;“Server”更改为“笔记本(工控机)名称\WINCC”;下一步使用WINDOWS认证“Use Windows Authentication”;“Database”更改为“项目运行系统下的路径(例如:CC_BGSYJ_14_02_24_11_22_22R)”。

4. 点击“下一步”,进入“Choose a destination”。

5.“Destination”更改为“Microsoft Excel 97-2000”;“File name”建议更改为要导出的数据库表的名字,并指定保存的路径。

6.点击“下一步”,进入“Specify Table Copy Query”。

7. 点击“下一步”,进入“Select Source Table and Views”。

8.选择要导出的数据库表,然后点击“下一步”,进入“Save,Schedule,and replicate package”。

9. 点击“下一步”,“完成”,“确定”,“Done”,数据导出完成。

二.导入1.选择要导出的数据库表,右键选择“所有任务”,点击“所有任务”下的子菜单“Import Data…”进入“DTS Import/Export Wizard”窗口。

2. 点击“下一步”,进入“Choose a Data Source”。

3.“Data Source”更改为“Microsoft Excel 97-2000”;“File name”选择到指定路径下excel文档(重新制作或者以前导出的)。

SQLServer导出Excel

SQLServer导出Excel

SQLServer导出Excel1、在excel的单元格中输入18位的身份证号的数字,不带字母的,可是输入之后后四位总是自动变成0000解决方法:<1>单元格格式设置成文本格式,然后再输入。

<2>在输入身份证前加上一个单引号2、SQL Server 2005转出数据到Excel文件<1>右键点击数据库名称,然后点选“任务-->导出数据”<2>弹出"导入和导出向导"界面后,点击【下一步】按钮,进入"选择数据源"界面。

“数据源”和“服务器名称”采用默认值,“身份验证”默认使用Windows身份验证,可选择“使用SQL Server身份验证”方式进行验证。

“数据库”需要选择为要导出数据的目标数据库。

<3>点击【下一步】,进入"选择目标"界面。

默认目标为“SQL Native Client”,需要将目标进行重新选择为“Microsoft Excel”。

然后选择导出位置(即“Excel文件路径”),并命名一个导出文件名。

<4>点击【下一步】,进入"指定表复制或查询"界面。

在该界面,可以选择数据导出模式,如果需要通过SQL查询语句精确导出部分数据,则选择“编写查询以指定要传输的数据”导出方式,点击【下一步】,进入“选择源表和源视图”界面。

<5>如果选择的是第二种导出方式,则点击【下一步】按钮,进入“提供源查询”界面。

在SQL语句栏中,输入查询条件,然后点击【分析】按钮检验SQL语句是否正确有效,如果分析显示“此SQL语句有效”,则可以继续执行下一步操作。

<6>选择所需要的表,编辑,为防止出现如下:在excel的单元格中输入18位的身份证号的数字,不带字母的,可是输入之后后四位总是自动变成0000等情况;将“Decimal”更改为“LongT ext”;点击确定,点击【下一步】,进入“保存并执行包”界面。

sqlserver带列名导出数据到excel的方法

sqlserver带列名导出数据到excel的方法

今天在项目中遇到一个问题,需要从SQL Server导出表到Excel,但需要带列名。

尝试了几种方法,并小结如下:假定表如下:[sql]view plaincopyprint?E testDb22.GO3.4.5.IF NOT OBJECT_ID('Demo_A') IS NULL6.DROP TABLE [Demo_A]7.8./****** Object: Table[dbo].[Demo_A]downmoon:****************/9.10.11.CREATE TABLE [dbo].[Demo_A](12.[ID] int not null,13.[Name] [Nvarchar](20) NOT NULL14.)15.16.GO17.INSERT [dbo].[Demo_A]18.SELECT 1,'郭靖'19.union ALL SELECT 2,'胡一刀'20.union ALL SELECT 3,'令狐冲'21.GO如果通常的思路,我们可以用BCP,命令如下:[sql]view plaincopyprint?1.-- To allow advanced options to be changed.2.EXEC sp_configure 'show advanced options', 13.GO4.-- To update the currently configured value for advanced options.5.RECONFIGURE6.GO7.-- To enable the feature.8.EXEC sp_configure 'xp_cmdshell', 19.GO10.-- To update the currently configured value for this feature.11.RECONFIGURE12.GO13.14.EXEC master..xp_cmdshell 'bcp Testdb2.dbo.Demo_A out c:\Temp.xls -c -q -S"ap4\Net2012" -U"sa" -P"sA"'这样得到的xls文件中,Sheet是不带列名的。

SQL Server与Excel中数据的导入导出基本方法

SQL Server与Excel中数据的导入导出基本方法

从SQL Server中导入/导出Excel的基本方法从sql server中导入/导出excel 的基本方法/*=========== 导入/导出excel 的基本方法===========*/从excel文档中,导入数据到sql数据库中,很简单,直接用下面的语句:/*=============================================*/--假如接受数据导入的表已存在insert into 表select * fromopenrowset(microsoft.jet.oledb.4.0,excel 5.0;hdr=yes;database=c:test.xls,sheet1$)--假如导入数据并生成表select * into 表fromopenrowset(microsoft.jet.oledb.4.0,excel 5.0;hdr=yes;database=c:test.xls,sheet1$)/*===========================================*/--假如从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 frompubs..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, nisprocedure) = 1)drop procedure [dbo].[p_exporttb]gocreate proc p_exporttb@tbname sysname, --要导出的表名@path nvarchar(1000), --文档存放目录@fname nvarchar(250)= --文档名,默认为表名asdeclare @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+@fnameinsert into #tb exec master..xp_fileexist @sql--数据库创建语句set @sql=@path+@fnameif 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 outif @err<>0 goto lberrexec @err=sp_oamethod @obj,open,null,@constrif @err<>0 goto lberr/*--假如覆盖已存在的表,就加上下面的语句--创建之前先删除表/假如存在的话select @sql=drop table [+@tbname+]exec @err=sp_oamethod @obj,execute,@out out,@sql--*/--创建表的sqlselect @sql=,@fdlist=select @fdlist=@fdlist+,[++],@sql=@sql+,[++]+case when in(char,nchar,varchar,nvarchar) thentext(+cast(case when a.length>255 then 255 else a.length end as varchar)+)when in(tynyint,int,bigint,tinyint) then intwhen in(smalldatetime,datetime) then datetimewhen in(money,smallmoney) then moneyelse endfrom syscolumns a left join systypes b on a.xtype=b.xusertypewhere notin(image,text,uniqueidentifier,sql_variant,ntext,varbinary,binary,timestamp) and object_id(@tbname)=idselect @sql=create table [+@tbname+](+substring(@sql,2,8000)+),@fdlist=substring(@fdlist,2,8000)exec @err=sp_oamethod @obj,execute,@out out,@sqlif @err<>0 goto lberrexec @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) returnexec sp_oageterrorinfo 0,@src out,@desc outlbexit:select cast(@err as varbinary(4)) as 错误号,@src as 错误源,@desc as 错误描述select @sql,@constr,@fdlistgo--上面是导表的,下面是导查询语句的./*--数据导出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, nisprocedure) = 1)drop procedure [dbo].[p_exporttb]gocreate proc p_exporttb@sqlstr varchar(8000), --查询语句,假如查询语句中使用了order by ,请加上top 100 percent@path nvarchar(1000), --文档存放目录@fname nvarchar(250), --文档名@sheetname varchar(250)= --要创建的工作表名,默认为文档名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.xlsif 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+@fnameinsert into #tb exec master..xp_fileexist @sql--数据库创建语句set @sql=@path+@fnameif 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 outif @err<>0 goto lberrexec @err=sp_oamethod @obj,open,null,@constrif @err<>0 goto lberr--创建表的sqldeclare @tbname sysnameset @tbname=##tmp_+convert(varchar(38),newid())set @sql=select * into [+@tbname+] from(+@sqlstr+) aexec(@sql)select @sql=,@fdlist=select @fdlist=@fdlist+,[++],@sql=@sql+,[++]+case when in(char,nchar,varchar,nvarchar) thentext(+cast(case when a.length>255 then 255 else a.length end as varchar)+)when in(tynyint,int,bigint,tinyint) then intwhen in(smalldatetime,datetime) then datetimewhen in(money,smallmoney) then moneyelse endfrom tempdb..syscolumns a left join tempdb..systypes b ona.xtype=b.xusertypewhere notin(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,@sqlif @err<>0 goto lberrexec @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)returnlberr:exec sp_oageterrorinfo 0,@src out,@desc out lbexit:select cast(@err as varbinary(4)) as 错误号,@src as 错误源,@desc as 错误描述select @sql,@constr,@fdlistgo。

教你在SQLServer数据库中导入导出数据.

教你在SQLServer数据库中导入导出数据.

教你在SQL Server数据库中导入导出数据在我们建立一个数据库时,并且想将分散在各处的不同类型的数据库分类汇总在这个新建的数据库中时,尤其是在进行数据检验、净化和转换时,将会面临很大的挑战。

幸好SQL Server为我们提供了强大、丰富的数据导入导出功能,并且在导入导出的同时可以对数据进行灵活的处理。

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

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

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

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

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

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

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

利用SQL Server的DTS操作EXCEL、Access等数据表的导入导出

利用SQL Server的DTS操作EXCEL、Access等数据表的导入导出

利用SQL Server的DTS操作EXCEL、Access等数据表的导入导出- -熟悉SQL SERVER 2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也可以使用Transact-SQL语句进行导入导出操作。

在Transact-SQL语句中,我们主要使用OpenDataSource 函数、OPENROWSET 函数,关于函数的详细说明,请参考SQL联机帮助。

利用下述方法,可以十分容易地实现SQL SERVER、ACCESS、EXCEL数据转换,详细说明如下:一、SQL SERVER 和ACCESS的数据导入导出常规的数据导入导出:使用DTS向导迁移你的Access数据到SQL Server,你可以使用这些步骤:1在SQL SERVER企业管理器中的Tools(工具)菜单上,选择Data Transformation2Services(数据转换服务),然后选择czdImport Data(导入数据)。

3在Choose a Data Source(选择数据源)对话框中选择Microsoft Access as the Source,然后键入你的.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件。

4在Choose a Destination(选择目标)对话框中,选择Microsoft OLE DB Prov ider for SQL Server,选择数据库服务器,然后单击必要的验证方式。

5在Specify Table Copy(指定表格复制)或Query(查询)对话框中,单击Copy tables(复制表格)。

6在Select Source Tables(选择源表格)对话框中,单击Select All(全部选定)。

下一步,完成。

Transact-SQL语句进行导入导出:1. 在SQL SERVER里查询access数据:-- ======================================================SELECT *FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="c:\DB.mdb";User ID=Admin;Password=')...表名-------------------------------------------------------------------------------------------------2. 将access导入SQL server-- ====================================================== 在SQL SERVER 里运行:SELECT *INTO newtableFROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0','Data Source="c:\DB.mdb";User ID=Admin;Password=' )...表名------------------------------------------------------------------------------------------------- 3. 将SQL SERVER表里的数据插入到Access表中-- ====================================================== 在SQL SERVER 里运行:insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source=" c:\DB.mdb";User ID=Admin;Password=')...表名(列名1,列名2)select 列名1,列名2 from sql表实例:insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0','C:\db.mdb';'admin';'', Test)select id,name from TestINSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\trade.mdb'; 'admin'; '', 表名)SELECT *FROM sqltablename-------------------------------------------------------------------------------------------------二、SQL SERVER 和EXCEL的数据导入导出1、在SQL SERVER里查询Excel数据:-- ======================================================SELECT *FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] 下面是个查询的示例,它通过用于Jet 的OLE DB 提供程序查询Excel 电子表格。

sqlserve 快速导出excel方法

sqlserve 快速导出excel方法

SQL Server 是一种强大的关系型数据库管理系统,它可以帮助用户存储和管理大量结构化数据。

在实际工作中,我们经常需要将数据库中的数据导出到 Excel 表格中进行分析和处理。

本文将介绍 SQL Server 快速导出 Excel 的方法,希望对大家有所帮助。

1. 使用 SQL Server Management Studio 导出数据我们可以使用 SQL Server Management Studio(SSMS)自带的功能来快速导出数据到 Excel。

具体操作步骤如下:打开 SQL Server Management Studio,并连接到相应的数据库实例。

在 Object Explorer 中找到需要导出数据的数据库,展开该数据库,找到要导出数据的表。

右键点击该表,选择 "Tasks" -> "Export Data"。

在 "Wee to the SQL Server Import and Export Wizard" 窗口中,点击 "Next"。

在 "Choose a Data Source" 窗口中,选择数据源的类型,一般选择"SQL Server Native Client",然后选择要导出数据的数据库实例,输入数据库登入信息,点击 "Next"。

在 "Choose a Destination" 窗口中,选择目标数据源的类型为"Microsoft Excel",然后输入 Excel 文件的路径和名称,点击 "Next"。

在 "Specify Table Copy or Query" 窗口中,选择 "Copy data from one or more tables or views",然后选择要导出的表,点击 "Next"。

将SQLServer结果导出为excel文件

将SQLServer结果导出为excel文件

相信大家常常会遇到将SqlServer查询结果导出到Excel的问题。

如果导出的次数少,直接“Save Results As...”就是了;但是当要分别在每个表取样,那就相当麻烦了。

今天就为大家提供一个脱离office组件的可以将语句结果导出到Excel的过程,希望会对大家有帮助!---导出到Excel---使用说明:-- 1.执行时所连接的服务器决定文件存放在哪个服务器-- 2.远程查询语句中,要加上数据库名ALTER PROC ExportFile@QuerySql V ARCHAR(max),@Server V ARCHAR(20),@User V ARCHAR(20),@Password V ARCHAR(20),@FilePath NV ARCHAR(100) = 'c:ExportFile.xls'ASDECLARE @tmp V ARCHAR(50) = '[##Table' + CONVERT(V ARCHAR(36),NEWID())+']' BEGIN TRYDECLARE @Sql V ARCHAR(max),@DataSource V ARCHAR(max)='';--判断是否为远程服务器IF @Server &lt;&gt; '.' AND @Server &lt;&gt; '127.0.0.1'SET @DataSource = 'OPENDA TASOURCE(''SQLOLEDB'',''Data--将结果集导出到指定的数据库SET @Sql = REPLACE(@QuerySql,' from ',' into + ' from ' + @DataSource)PRINT @SqlEXEC(@Sql)DECLARE @Columns V ARCHAR(max) = '',@Data NV ARCHAR(max)=''SELECT @Columns = @Columns + ',''' + name +''''--获取列名(xp_cmdshell导出文件没有列名),@Data = @Data + ',Convert(Nvarchar,[' + name +'])'--将结果集所在的字段更新为nvarchar(避免在列名和数据union的时候类型冲突)FROM tempdb.sys.columns WHERE object_id = OBJECT_ID()SELECT @Data = 'SELECT ' + SUBSTRING(@Data,2,LEN(@Data)) + ' FROM ' + @tmp SELECT @Columns = 'Select ' + SUBSTRING(@Columns,2,LEN(@Columns))--使用xp_cmdshell的bcp命令将数据导出EXEC sp_configure 'xp_cmdshell',1RECONFIGUREDECLARE @cmd NV ARCHAR(4000) = 'bcp "' + @Columns+' Union All ' + @Data+'" queryout ' + @FilePath + ' -c -T'PRINT @cmdexec sys.xp_cmdshell @cmdEXEC sp_configure 'xp_cmdshell',0RECONFIGUREEXEC('DROP TABLE ' + @tmp)END TRYBEGIN CATCH--处理异常IF OBJECT_ID() IS NOT NULL EXEC('DROP TABLE ' + @tmp) EXEC sp_configure 'xp_cmdshell',0RECONFIGURESELECT ERROR_MESSAGE() END CATCH更多信息请查看IT技术专栏。

SQLserver导入导出手动教程(不使用查询语句)

SQLserver导入导出手动教程(不使用查询语句)

导出:
新建一个excel文件,在工具栏上方选择数据
点击自其他来源
出现以下窗口,服务器名可以在你的SQL的登录窗口看到
填好后,点下一步,选择数据库和表
直接点击完成,出现
直接确定就完成了导出。

导入:
打开SQLserver,对你要导入的数据库点右键,选择任务,导入数据
出现以下窗口
选择数据源:选为EXCEL,出现
选择文件路径后点击下一步
继续下一步,下一步,到
选择你的数据所在列,注意是带有$号的,同时点击下方的编辑映射
可以修改导入后的字段的类型,相当于数据库建表,注意选择类型和你导入的数据要吻合然后确定后,点击下一步
无视黄色感叹号,下一步
直接点击完成
继续完成
OK
回去刷新一下数据库,就可以看到你建的表了。

SQL_Server数据与Excel表的导入导出

SQL_Server数据与Excel表的导入导出

SQL_Server数据与Excel表的导入导出SQL Server与Excel的数据交换几乎所有的数据库管理者或者是与数据库打过交道的朋友,几乎都或多或少的了解并使用过数据导入导出的功能以便完成支持诸如数据合并、归档和分析等任务,以及开发应用程序或升级数据库或服务器,而这一切的便利都已经被SQL Server中的数据转换服务(DTS)囊括其中,它提供了一套图形化工具和可编程对象,以帮助管理员和开发人员和需要进行数据维护的人员解决数据移动问题,其中包括将数据从分散的数据源中提取出来,并且转换、合并到一个或多个目标位置。

可以将任务组、工作流操作以及约束条件收集起来形成DTS 软件包,然后安排它定期运行或在某些事件发生后运行。

首先我们来先认识一下什么是DTS,它是一组工具,用于在一个或多个数据源(如Microsoft SQL Server、Microsoft Excel或Microsoft Access)间导入、导出和转换各种数据。

通过OLE DB(一种数据访问的开放式标准)提供连接,通过用于ODBC的OLE DB 提供程序来支持ODBC(开放式数据库连接)数据源。

在这里我们将以具体的实例来介绍DTS数据的导入导出功能。

例:使用DTS向导导出自己建立的dmtjxxb数据库中的dmtjxxb_register 表,到Excel表中。

操作步骤为:(1)启动SQL Server企业管理器(Enterprise Manager)后,点击SQL Server组,选择指定的服务器,如此次操作的数据库是我本地的数据库,如图:SQL Server企业管理器本地数据库选中要导出的数据库名称,点击鼠标右键,在弹出的菜单点击“所有任务”选择“导出数据”选项,如下图所示,就会弹出数据导入导出向导。

(2)单击“下一步”按钮,打开选择数据源对话框,如下图所示:首先在“数据源”旁的下拉列表中选择数据源。

在本例中选择Microsoft OLE DB Provider for SQL Server。

SQLserver数据库导出为Excel数据的方法

SQLserver数据库导出为Excel数据的方法

SQLserver数据库导出为Excel数据的方法
社保用友R9.7财务软件后台数据库存为SQLserver数据库,首先利用SQLserver还原数据,并将数据转换为EXCEL 格式文件,再利用AO采集数据库的方式采集数据生成帐表。

数据库存中导出的表为:
1、凭证表:GL-pznr
凭证表导出为EXCEL表后,将各月日期字段值进行修改。

如:200701的值替换为:2007-1-31类型的日期值,各月依次类推。

同时将2008年发生的业务记录全部清除。

2、余额表:GL-kmxx
3、科目表:GL-yeb
操作方法:
1、新建一个Excel表。

2、利用SQLserver还原用友数据库并将其导出为Excel数据
表。

第一步:在还原后的数据库中点右键—所有任务—导出数据
第二步:出现“TDS导入/导出”界面选---下一步
第三步:不作修改选---下一步
第四步:1、在“目的”选项中选“Microsoft Excel 97-2000”
2、在“文件名”选项中选新建的Excel文件“07社保财务数据(用友R9.7).xls”
3、选---下一步
第五步:选下一步
第六步:
1、选择----凭证表:GL-pznr 并在目的名中换名为:凭证表
2、选择----凭证表:GL-yeb 并在目的名中换名为:余额表
3、选择----凭证表:GL-kmxx 并在目的名中换名为:科目表
4、选---下一步

第七步:选----下一步
第八步:选---完成。

SQLServer备份数据,导入导出Excel的基本方法

SQLServer备份数据,导入导出Excel的基本方法

SQL Server 2000
数据备份、导出为excel,把excel导入数据表
1.a.数据备份:选中要备份的数据库----右键----所有任务-----备份数据库:
b.选“备份”栏中选择“完全”,点“添加”,填入备份文件名
最后一路确定到完成!
2.导出为Excel表:
打开查询分析器-----select * from cbda-----在显示栏中把结果全选----复制----粘贴到Excel表
3.Excel表导入数据库:
在目标数据库上选右键----所有任务-----导入数据----下一步
在“选择数据源对话框中”数据源选:Excel5.0, ,文件名选自己要导入的Excel表名,
然后下一步,再下一步,再下一步
把要导入的表选上(前面打勾),目的表选上。

点下一步,直到完成.。

sqlserver批量导出表数据的方法

sqlserver批量导出表数据的方法

SQL Server批量导出表数据的方法在SQL Server数据库中,有时我们需要将表数据导出为不同的文件格式,如CSV、Excel等。

本文将介绍几种常用的方法,来实现SQL Server批量导出表数据的功能。

1. 使用BCP命令导出数据BCP(Bulk Copy Program)是SQL Server自带的一个命令行工具,可以用来导入导出数据。

下面是使用BCP命令导出表数据的步骤:1.打开命令提示符或Powershell窗口,输入以下命令:bcp [数据库名称].[表名] out [文件路径] -c -T -S [服务器名称]其中,数据库名称是指要导出数据所在的数据库名,表名是指要导出数据的表名,文件路径是指要导出数据的文件路径,服务器名称是指SQL Server实例的名称。

例如,要将数据库AdventureWorks中的表Sales.SalesOrderDetail的数据导出为CSV文件,可以使用以下命令:bcp AdventureWorks.Sales.SalesOrderDetail out "C:\ExportData.csv" -c -T-S localhost2.执行上述命令后,BCP会将表数据导出为指定的文件。

使用BCP命令导出数据的优点是速度快、可批量导出多个表数据,但缺点是需要使用命令行操作,不够直观。

2. 使用SQL Server Management Studio导出数据SQL Server Management Studio(简称SSMS)是SQL Server的可视化管理工具,可以通过图形化界面导出表数据。

以下是使用SSMS导出表数据的步骤:1.打开SSMS,连接到SQL Server实例,展开数据库和表节点,右键点击要导出数据的表,选择“导出数据”选项。

2.在导出数据向导中,选择数据源和目标:–数据源:选择要导出数据的表。

–目标:选择要导出数据的文件格式(如CSV、Excel等)和文件路径。

将Sql server中数据导出到excel

将Sql server中数据导出到excel

将Sql server中数据导出到excel 方法一:从excel中导入数据选择sqlserver连接方法二:(Excel文件已经存在,而且已经按照要接收的数据创建好表头——追加记录)insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel5.0;HDR=YES;DATABASE=c:\1.xls',sheet1$)select*from dbo.qin_test操作后报错:消息15281,级别16,状态1,第1 行SQL Server 阻止了对组件'Ad Hoc Distributed Queries' 的STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。

系统管理员可以通过使用sp_configure 启用'Ad Hoc Distributed Queries'。

有关启用'Ad Hoc Distributed Queries' 的详细信息,请参阅SQL Server 联机丛书中的"外围应用配置器"。

方法三:(Excel文件不存在,也可以用BCP来导成类Excel的文件,注意大小写)exec master..xp_cmdshell'bcp "select * from dbo.qin_test" queryout c:\2.xls -c -q -S"A382ZJSBQZ7FPEJ" -U"sa" -P"qin"'消息15281,级别16,状态1,过程xp_cmdshell,第1 行SQL Server 阻止了对组件'xp_cmdshell' 的过程'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。

SqlServer 数据导出到 Excel

SqlServer 数据导出到 Excel

将SQL SERVER中查询到的数据导成一个Excel文件-- ======================================================T-SQL代码:EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q-S"servername" -U"sa" -P""'参数:S 是SQL服务器名;U是用户;P是密码EXEC master..xp_cmdshell 'bcp axzq.dbo.Staff out d:staff.xls -c -q -S"." -U"sa" -P"gazx"'说明:还可以导出文本文件等多种格式实例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount outc:\temp1.xls -c -q -S"pmserver" -U"sa" -P"sa"'EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:\ authors.xls -c-Sservername -Usa -Ppassword'EXEC master..xp_cmdshell 'bcp "select name from axzq..staff order by name" queryout d:staffName.xls -c -q -S"." -U"sa" -P"gazx"'++++++++++++++++++++++SQL SERVER和EXCEL的数据导入导出1、在SQL SERVER里查询Excel数据:-- ======================================================SELECT*FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="c:\book1.xls";User ID=Admin;Password=;Extendedproperties=Excel 5.0')...[Sheet1$]下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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
openrowset(microsoft.jet.oledb.4.0
,excel 5.0;hdr=yes;database=c:test.xls,sheet1$)
/*===========================================*/
--假如从sql数据库中,导出数据到excel,假如excel文档已存在,而且已按照要接收的数据创建好表头,就能够简单的用:
/*--说明:
c:test.xls 为导入/导出的excel文档名.
sheet1$ 为excel文档的工作表名,一般要加上$才能正常使用.
--*/
--上面已说过,用bcp导出的是类excel文档,其实质为文本文档,
--要导出真正的excel文档.就用下面的方法
/*--数据导出excel
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 @sql=select * into [+@tbname+] from(+@sqlstr+) a
,假如表不存在,将自动创建表
基于通用性考虑,仅支持导出标准数据类型
--邹建 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, nisprocedure) = 1)
drop procedure [dbo].[p_exporttb]
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())
--假如接受数据导入的表已存在
insert into 表 select * from
openrowset(microsoft.jet.oledb.4.0
,excel 5.0;hdr=yes;database=c:test.xls,sheet1$)
--假如导入数据并生成表
select * into 表 from
when in(money,smallmoney) then money
else end
from syscolumns a left join systypes b on a.xtype=b.xusertype
where not in(image,text,uniqueidentifier,sql_variant,ntext,varbinary,binary,timestamp)
@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)
,@src as 错误源,@desc as 错误描述
select @sql,@constr,@fdlist
go
--上面是导表的,下面是导查询语句的.
/*--数据导出excel
导出查询中的数据到excel,包含字段名,文档为真正的excel文档
,假如文档不存在,将自动创建文档
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+$])
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)
exec @err=sp_oamethod @obj,execute,@out out,@sql
--*/
--创建表的sql
select @sql=,@fdlist=
select @fdlist=@fdlist+,[++]
,@sql=@sql+,[++]
+case when in(char,nchar,varchar,nvarchar) then
insert into openrowset(microsoft.jet.oledb.4.0
,excel 5.0;hdr=yes;database=c:test.xls,sheet1$)
select * from 表
--假如excel文档不存在,也能够用bcp来导成类excel的文档,注意大小写:
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 错误号
--参数检测
if isnull(@fname,)= set @fname=temp.xls
if isnull(@sheetname,)= set @sheetname=replace(@fname,.,#)
--检查文档是否已存在
if right(@path,1)<> set @path=@path+
从sql server中导入/导出 excel 的基本方法
/*=========== 导入/导出 excel 的基本方法 ===========*/
从excel文档中,导入数据到sql数据库中,很简单,直接用下面的语句:
/*=============================================*/
set @constr=driver={microsoft excel driver (*.xls)};dsn=;readonly=false
+;create_db=" +;database=+@sql+"
--连接数据库
exec @err=sp_oacreate adodb.connection,@obj out
--*/
if exists (select * from dbo.sysobjects where id = object_id(n[dbo].[p_exporttb]) and objectproperty(id, nisprocedure) = 1)
drop procedure [dbo].[p_exporttb]
if @err<>0 goto lberr
exec @err=sp_oamethod @obj,open,null,@constr
if @err<>0 goto lberr
/*--假如覆盖已存在的表,就加上下面的语句
--创建之前先删除表/假如存在的话
select @sql=drop table [+@tbname+]
相关文档
最新文档