如何从Excel文件更新数据库 [英] How ot update a database form an Excel file

查看:436
本文介绍了如何从Excel文件更新数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,我需要更新数据库表中的某些列。更新的数据源是一个Excel文件。

首先,我从未学过SQL,我用直觉,所以我需要细节才能成功。

我尝试用数据库在数据库中创建一个新表(APASEDATOS)定义,在MSSM中,和 转移数据trhough Access,然后做了这个程序(它给了我):


merge
into gva14 AS DESTINO

merge into gva14 AS DESTINO


使用
< span lang ="EN-US"style ="font-size:9.5pt; font-family:Consolas; color:grey">( 选择 COD_CLIENT
TIPO_DOC CUIT 来自
APASEDATOS
AS ORIGEN

using (select COD_CLIENT, TIPO_DOC, CUIT from APASEDATOS) AS ORIGEN


ON DESTINO COD_CLIENT
= ORIGEN COD_CLIENT

ON DESTINO.COD_CLIENT = ORIGEN.COD_CLIENT


WHEN
MATCHED 那么

WHEN MATCHED THEN


更新
SET TIPO_DOC = ORIGEN TIPO_DOC
CUIT = ORIGEN CUIT ;

UPDATE SET TIPO_DOC = ORIGEN.TIPO_DOC , CUIT = ORIGEN.CUIT;

 


但我收到此错误消息:


男士.358,Nivel 16,Estado 1,Línea1


MERGE语句的目标表'DESTINO'不能有任何已启用的规则。 
找到规则'R_D_SEXO'。

The target table 'DESTINO' of the MERGE statement cannot have any enabled rules.  Found rule 'R_D_SEXO'.


 

所以我尝试通过Access,顺序如下:

UPDATE dbo_APASEDATOS INNER JOIN dbo_GVA14 ON dbo_APASEDATOS.COD_CLIENT = dbo_GVA14.COD_CLIENT SET dbo_GVA14.CUIT = [dbo_APASEDATOS]。[CUIT],dbo_GVA14.TIPO_DOC = [ dbo]。[APASEDATOS]。[TIPO_DOC];

但并非所有数据都已更新,我不明白为什么。

非常感谢您的帮助,非常感谢,

Dan

Muchas gracias!

Muchas gracias!

推荐答案

规则是一个非常古老且已被弃用的功能。显然已经过时了,导致出现此错误 - 类似的问题/回复  这里
所以 - 删除规则,如有必要,替换它的机智约束。但是你的问题和背景令人困惑。您指的是Excel,Access和SQL Server - 不清楚合并目标(即要更新的表)的位置。但是,
您只更新行,因此请尝试将查询转换为更新语句。 
Rules are a very old and deprecated feature. Apparently so old that they cause this error - similar question/response here. So - drop the rule and, if necessary, replace it with a constraint. But your question and context are confusing. You refer to Excel, Access, and SQL Server - it is not clear where the target of your merge (i.e., the table that will be updated) exists. However, you are only updating rows so try converting your query into an update statement. 


这篇关于如何从Excel文件更新数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆