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

来源:互联网 发布:2017大数据龙头股票 编辑:程序博客网 时间:2024/05/29 16:52

在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 t1select * 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,F8from  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的首行会作为表头,若导入到已存在的数据库表,则忽略首行。
原创粉丝点击