excel2003导入时间到sqlserver2005(这篇比较好)(转自:http://wep2008.blogbus.com/logs/35390970.html)...
发布日期:2021-10-01 03:38:21 浏览次数:24 分类:技术文章

本文共 1710 字,大约阅读时间需要 5 分钟。

excel文件中有一时间列,混合了文本与时间,如 傍晚 凌晨 12:15 其中 hh:mm居多,使用DTSWizard导入虽然方便但是hh:mm都变成了NULL,在导入设置中设置导入数据类型不能实现。

需要语句实现,下面的语句都可以实现:

1.

SELECT * into newtable1

FROMOpenDataSource( 'Microsoft.Jet.OLEDB.4.0',

'Data Source="C:/yyyy_wind.xls";

User ID=;Password=;Extended properties="Excel 8.0;HDR=YES;IMEX=1"')...sheet1$

2.

SELECT * into newtable2

FROMOPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',

'Data Source=C:/yyyy_wind.xls;Extended Properties="Excel 8.0;HDR=YES;IMEX=1"')...sheet1$

3.

SELECT *into newtable3

FROMOPENROWSET('Microsoft.Jet.OLEDB.4.0',

'Excel 8.0;Database=C:/yyyy_wind.xls;HDR=YES;IMEX=1', sheet1$ )

这sheet指的是excel默认的sheet1,可以修改,文件路径取实际路径。

网上其实好多资料,但是由于使用OpenDataSource和OPENROWSET都可以实现,又加上双引号" "单引号''混用,难以搞清楚。关键问题是这样的使用OpenDataSource时,Extended Properties的内容分号间隔并用双引号括起来,sheet1$在括号外,OPENROWSET相对简洁.

下面介绍HDR和IMEX两个参数

HDR为YES,excel文件的首行作为sqlserver表的列名,为NO则作表的第一行。

IMEX=1 意思是tells the driver to always read "intermixed" data columns as text

在这里driver的意思是excel的驱动程序。

Excel 驱动程序读取指定源中一定数量的行(默认情况下为 8 行)以推测每列的数据类型。如果推测出列可能包含混合数据类型(尤其是混合了文本数据的数值数据时),驱动程序将决定采用占多数的数据类型,并对包含其他类型数据的单元返回空值。(如果各种数据类型的数量相当,则采用数值类型。)

Excel 工作表中大部分单元格格式设置选项不会影响此数据类型判断。(有说在写入excel表时就全部设定为文本,可以,囧!)

SQLSERVER2005由于安全性的提高,直接使用上述语句还是有问题的(2000可以直接用)。

按提示进行如下操作:

从开始菜单进入到 配置工具 > sql server 2005 外围应用配置器 > 服务和连接的外围配置器 > Datebase Engine 启动服务,然后重启sqlserver服务。由于sql server 2005没有了2000那样任务栏右下角的图表,所以需要通过控制面板进入管理工具 > 服务 停止 后启动 sqlserver 服务。

然后运行 regedit 进入注册表编辑器HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SQL Server/MSSQL.1/Providers/Microsoft.Jet.OLEDB.4.0 新建DWORD 名为DisallowAdhocAccess 值为0.

好了。

----------------------

以前常用的

SELECT *

FROM OPENDATASOURCE(

'SQLOLEDB',

'Data Source=ServerName;User ID=MyUID;Password=MyPass'

).Northwind.dbo.Categories

转载地址:https://blog.csdn.net/iteye_18039/article/details/81970660 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:你怎么就一根筋呢? STL之vector and string用还是不用
下一篇:c#读取并修改App.config文件实例(转载:http://blog.csdn.net/abuhome/archive/2010/01/13/5184467.aspx)...

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月09日 22时53分18秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

C++_类和对象_对象特性_构造函数调用规则---C++语言工作笔记043 2021-06-29
C++_类和对象_对象特性_深拷贝与浅拷贝---C++语言工作笔记044 2021-06-29
AndroidStudio_java.util.ConcurrentModificationException---Android原生开发工作笔记237 2021-06-29
AndroidStudio_android中实现对properties文件的读写操作_不把properties文件放在assets文件夹中_支持读写---Android原生开发工作笔记238 2021-06-29
弹框没反应使用Looper解决_the caller should invoke Looper.prepare() and Looper.loop()---Android原生开发工作笔记239 2021-06-29
Command line is too long. Shorten command line for Application---微服务升级_SpringCloud Alibaba工作笔记0067 2021-06-29
AndroidStudio_android实现双击_3击_监听实现---Android原生开发工作笔记240 2021-06-29
C++_类和对象_对象特性_初始化列表---C++语言工作笔记045 2021-06-29
C++_类和对象_对象特性_静态成员函数---C++语言工作笔记047 2021-06-29
AndroidStudio安卓原生开发_SwipeRefreshLayout_下拉刷新控件---Android原生开发工作笔记119 2021-06-29
AndroidStudio安卓原生开发_UI高级_DrawerLayout_侧滑菜单控件---Android原生开发工作笔记120 2021-06-29
AndroidStudio安卓原生开发_UI高级_Shape的使用_虚线_直线_矩形_渐变_径向渐变_线性渐变_扫描渐变---Android原生开发工作笔记122 2021-06-29
AndroidStudio安卓原生开发_UI高级_StateListDrawable状态选择器_按钮按下和抬起显示不同颜色---Android原生开发工作笔记124 2021-06-29
kivy制作安卓APP--简单音乐播放器 2021-06-29
十年(程序员改编) 2021-06-29
c++排序算法个人总结 2021-06-29
看完你就知道的乐观锁和悲观锁 2021-06-29
Docker入门 2021-06-29
Spring Aop 扫盲 2021-06-29
看完这篇操作系统,和面试官扯皮就没问题了 2021-06-29