INSERT INTO tblRequest
SELECT intRequestID,intCustomerID,strSiteURL, intSearchDepth, strSamplingMethod ,intMaxRunningTime ,strHTTPMethod ,dteRequestTime ,bitLoadFlag ,strUserAgent, bitRandomUserAgent ,bitObeyRobotsTXT,strSpiderIP, strProxyIP ,maxImpressions, counterMax ,priority ,StrPath ,StrRootPath ,regular
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\request.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[tblRequest]
插入的时候,外键约束是个问题,可以设FK可以NULL,然后将EXCEL文件中相应外键列全部设为空值,再全部插入.
=================================
解决些问题过程中,看到了一篇很好的文章
使用sql server 2005。
在sql server中,有一个OpenDateSource函数,用于引用那些不经常访问的DLE DB数据源,Excel与sql server数据导入导出就是建立在这个函数之上。
sql的查询语句语法:SELECT 列名称 FROM 表名称。
插入语句语法:INSERT INTO 表名称 VALUES (值1, 值2,....)。
在开始查询excel之前,要先打开对组件'Ad Hoc Distributed Queries' 的访问,系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。开启方法如下:
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
EXEC sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE
GO
好了,准备工作就这么多,下面开始excel向sql server的数据导入。
首先看一个T-SQL帮助中的示例,描述如下:
--下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
如果你直接引用这个示例进行查询,那么肯定是通不过的。关键在于语句中的两个地方需要修改,一处在于Data Source处,双引号内为Excel表格的实际存放位置,要修改为你想查询的Excel表实际完整路径;二为最后的...xactions,其实这里代表的是要进行的某些动作,下面会讲,这里修改成用中括号包围的Excel表中工作表名字(加上一个$)就可以了,如[Sheet1$]。当然,还可以将Excel 5.0改为Excel 8.0,因为5.0是以前的老版本了。
下面是实例说明:
/*1、插入Excel中的资料到现存的sql数据库表中(假设C盘有excel表book2.xls,book2.xls中有个工作表sheet1,sheet1中有两列id和FName;而同时sql数据库中也有一个表test):*/
insert into test SELECT id,FName
FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="c:\book2.xls";User ID=Admin;Password=;Extended properties=Excel 8.0')...[sheet1$]
--如果用select * ,则列的次序会乱,资料内容也会乱,无法插入成功,所以指定列名
-----------------------
/*2、插入excel表中资料到sql数据库并新建一个sql表(excel的定义和内容同上):*/
select convert(int,id)as id,FName into test7
FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="c:\book2.xls";User ID=Admin;Password=;Extended properties=Excel 8.0')...[sheet1$]
--在select 列中最好用convert进行显示类型转换,否则资料类型会不如预期。
sql server 向excel导入数据
要用T-SQL语句直接导出至Excel工作薄,就不得不用借用SQL Server管理器的一个扩展存储过程:xp_cmdshell,此过程的作用为“以操作系统命令行解释器的方式执行给定的命令字符串,并以文本行方式返回任何输出。”下面为定义示例:
EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Book3.xls -c -q -S"servername" -U"sa" -P""'
--参数:S 是SQL服务器名;U是用户名;P是密码,没有就空着
--说明:其实用这个过程导出的格式实质上就是文本格式的,不信的话在导出的Excel表中改动一下再保存看看。
实际例子与说明如下:
/*如果要将表整个导出至Excel的话*/
EXEC master..xp_cmdshell 'bcp northwind.dbo.orders out c:\Book1.xls -c -q -S"(local)" -U"sa" -P""'
--注意句中的northwind.dbo.orders,为数据库名+拥有者+表名
--直接导出用“out”关健字
-------------------------------------------
/*如果要利用查询来导出部分字段至Excel的话*/
EXEC master..xp_cmdshell 'bcp "SELECT orderid,cutomerid,freight FROM northwind..orders ORDER BY orderid" queryout C:\ Book2.xls -c -S"(local)" -U"sa" -P""'
--这里在bcp后面加了一个查询语句,并用双引号括起来
--利用查询要用“queryout”关键字
分享到:
相关推荐
Excel导入SQLserver源码 Excel是一种非常灵活的电子表格软件,用它可以存储各种数据,本节将对如何将Excel导入SQL Server2000数据库进行详细介绍。 开发环境:NET2.0 开发工具:vs2005 开发语言:c# 数据库:server...
Excel导入SQLserver源码_excel2sql
客户端将Excel导入SQL Server C#源码下载 客户端将Excel导入SQL Server C#源码下载
ASP.NET将EXCEL导入SQL SERVER数据库的代码 ASP.NET将EXCEL导入SQL SERVER数据库的代码
excel导入sql server数据库源码
Excel导入SqlServer工具;xlstosql.3.9-patch.exe 放到文件目录执行即可。
使用Asp.Net开发,用于导入Excel文件到SQLServer,支持配置导入字段。支持主键为Int的外键。 两种方式:1、先导入Excel再配置对应关系 2、先配置对应关系在导入
WInform 程序 将Excel导入SQLSERVER数据库
将Excel中的数据导入到SqlServer中的实现方法总结。还有一个简单的例子
使用Asp.Net开发,用于导入Excel文件到SQLServer,支持配置导入字段。支持主键为Int的外键。
我是新手一枚,做了个winform导入Excel到数据库的小东西,分享给大家,请大家指点下。 文件里面有我的导入的Excel文件,估计只能导这样的吧。不过改改还是能导别的数据的。
delphi的excel导入sqlserver2000,delphi的excel导入sqlserver2000
环境:win7系统,SQL2005,Office2010,VS2008; 简单的Excel导入到SQL数据库的Demo.
DataImportSeverTable.zip excel导入sqlserver2000
一个C#类 将EXCEL批量导入sql
映射excel列到sqlserver数据库
EXCEL 与SQL SERVER 的数据互换技术 c#
DataConversion:方便进行Excel的数据向SQL Server数据库的导入工作,适合简单重复性的导入操作,使用XML配置文件进行导入设置的保存,理论上支持数据的任意导入(Update更新、Insert插入),数据库密码做了加密处理,...
从Excel文件中,导入数据到SQL数据库中,很简单,直接用下面的语句: ......