您的位置:首页 > 数据库

使用excel导入数据库的sql执行方式

2012-07-02 21:57 309 查看
在excel导入server数据库时,表的数据类型要设为nvarchar才不容易出错

启动外围应用配置器 ,可以用来导入excel数据库

可通过 SQL Server“开始”菜单使用 SQL Server 外围应用配置器:
· 在“开始”菜单中,依次指向“所有程序”Microsoft SQL Server2005“配置工具”,再单击“SQL Server 外围应用配置器”
显示的第一个页面为 SQL Server 外围应用配置器的起始页。在该起始页中,可指定要配置的服务器:
1. 单击“配置外围应用”旁边的“更改计算机”链接。默认值为“localhost”。如果您以前选择的是一个命名服务器,则将会看到该服务器名称。
2. 在“选择计算机”对话框中,执行下列操作之一:
· 若要在本地计算机中配置 SQL Server 2005,请单击“本地计算机”
· 若要在另一台计算机中配置 SQL Server 2005,请单击“远程计算机”,然后在文本框中输入计算机名称。
· 若要配置故障转移群集,请单击“远程计算机”,然后在文本框中输入故障转移群集实例名称。
3单击“确定”
代码是:
insert into t1
select *
from OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,
'Excel 5.0;HDR=YES;DATABASE=C:\Documents andSettings\Administrator\桌面\无公害农产品认证产品查询\2008年无公害农产品合格产品目录.xls',第四批$);

insert into Chanpin(shengfen,s_name,product_name,product_sb,ton,zsbh,date)
select F2,F3,F4,F5,F6,F7,F8
from OPENROWSET('MICROSOFT.JET.OLEDB.4.0',
'Excel 5.0;HDR=YES;DATABASE=C:\Documents andSettings\Administrator\桌面\无公害农产品认证产品查询\2010年无公害农产品合格产品目录.xls',第八批产品目录$);
????为什么有时候是(65425 行受影响)受到影响,而不是实际行数受到影响
那是因为一个excel表格里面可以有65425个行,但是我们存储的只有几百行左右,其它的就变成空行了,
删除空行的办法,就是全选表格,然后数据----筛选---自动筛选---,在第一行的列上会有下拉框,点击非空白即可
1)接受数据导入的表已经存在。

insert into t1 select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,

'Excel5.0;HDR=YES;DATABASE=c:\\test.xls',sheet1$);

2)导入数据并生成表。

select * into t1 from OPENROWSET('MICROSOFT.JET.OLEDB.4.0',

'Excel 5.0;HDR=YES;DATABASE=c:\\test.xls',sheet1$);
3) 导入Excel中指定的列到数据库表中指定的列。

INSERTINTO t1(a1,a2,a3) SELECT a1,a2,a3 FROM OPENROWSET 'MICROSOFT.JET.OLEDB.4.0','Excel5.0; HDR=YES; DATABASE=c:\\test.xls',sheet1$);

需要注意的地方。

1)外围应用配置器的设置。

从“功能外围应用配置器”中选择“启动 OPENROWSET 和 OPENDATASOURCE 支持”选项。

2)关闭Excel表。

如果在导入时要导入的Excel表格处于打开状态,会提示:

“无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "microsoft.jet.oledb.4.0" 的数据源对象。”

3)导入数据时,Excel的首行会作为表头,若导入到已存在的数据库表,则忽略首行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: