如何从Excel文件更新数据库 [英] How ot update a database form an Excel file
问题描述
您好,我需要更新数据库表中的某些列。更新的数据源是一个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
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屋!