当前位置:数据库 > Excel >>

依据excel表中更新数据库

假设excel表为d:\A.EXCEL,数据库为B,二者对应的(唯一检索值)列名为C,需要更新的列名分别是D和E。 求更新语句或更新方法。
答案:不知道是什么数据库.
我先假设是 ACCESS, 这样最简单。
Access 里面, 创建一个  链接表, 链接到这个 Excle 文件。
这个链接表的名字,就命名为 A
再假设你那个数据库里面的表,是B.
那么.

UPDATE A INNER JOIN B ON A.C = B.C SET  B.D = A.D, B.E = A.E
是把 Excel 的,更新到数据库

UPDATE A INNER JOIN B ON A.C = B.C SET  A.D = B.D, A.E = B.E
是把 数据库 的,更新到Excel

其他数据库的话,就看是否支持创建个Excel数据库链接的功能。 

-----
如果是 SQL Server 的话,我这里没有 SQL 2000, 只有个 SQL 2008 
下面的代码,我这里报错,不知道 SQL 2000 那里行不行

直接在 SQL Server 里面执行

SELECT *   
FROM OpenDataSource( 
  'Microsoft.Jet.OLEDB.4.0',  
  'Data Source="d:\A.EXCEL";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] 

或者

SELECT *   
FROM OpenDataSource( 
  'Microsoft.Jet.OLEDB.4.0',  
  'Excel 8.0;DATABASE=d:\A.EXCEL)...[Sheet1$]

注意, 把你那个 Excel 表格, 有数据的那个 Sheet 名字, 替换掉上面的 Sheet1
看看能否检索么?

能检索出来的话, 更新起来就只是 SQL 语句的问题了。

我不知道 SQL 2000 会不会报下面的错误:

SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad HocDistributed Queries' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"

如果报了,那么使用
-- 启用Ad Hoc Distributed Queries:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure

-- 为了安全使用完成后,关闭Ad Hoc Distributed Queries:
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure
其他:做虚拟的蛮不错的,主要是因为现在网上的竞争太激烈了,假如你的店没有一定的信誉度是特别难在网上立足的,真的,比如像你在网上买东西吧,你一定会先瞧瞧这个店的信誉是如何样的,假如特别高的话,你就有可以在这里停留一会,或许有自己满意而又放心想购买的东西吧。或许这是人的心里作用吧。新手作虚拟的主要是提升自己店的信誉度的,信誉高了自然人气也就旺了,你觉得呢?赚不赚钱主要是看你怎么去经营了,这个是完全要靠自己的,加油吧!希望我的意见能帮得到你。祝你成功!假如而且有啥不明白的,我可以教你!百度名(qq)加我帮你详细解答。谢谢 你的数据库是什么数据库?
用的什么数据库管理软件?
这是你首先确定的 在数据库里创建一张临时表A,然后将Excel里的数据导入到A表中,然后用下面的SQL就可以了
update B set B.D=A.D WHERE A.C=B.C;
UPDATE B SET B.E=A.E WHERE A.C=B.C; 

上一个:大哥你好,问下关于SQL查询Excel表名的问题.
下一个:oracle中如何实现将执行语句写到EXCEL中,最写成存储过程,谢谢?

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,