繁体   English   中英

SQL INSERT INTO SELECT 和 INNER JOIN

[英]SQL INSERT INTO with SELECT and INNER JOIN

我希望你能帮我解决这个小问题。 我不太确定如何向您解释这种情况,所以我将尝试一下。

我想做的是以下几点:

我想将一些特定的值和参数(我自己输入)插入到表 RFC_Risks 中,所以基本上每次我在表 RCF_Risks 中找到特定原因时,我都想写一个新行来更新 RfC 的优先级,每次发生这种情况时,position 应增加 1。

我现在的问题是,当我运行这个语句时,我只得到 SELECT 部分:-),没有插入完成,我也没有得到 SQL 语句错误或类似的东西。 我只需输入参数,然后我得到一个SELECT表就是这样。

我正在使用 MS Access 2010,希望您能帮助我解决我的“小”问题。

INSERT INTO RFC_Risks (RFC_No, RiskPos, Datum, Comments, RiskPrio, Reason)
SELECT RFC_Risks.RFC_No, (RFC_Risks.RiskPos +1) AS RiskPos, [Aktuelles Datum] AS Datum, [Kommentartext] AS Comments, [Neue Prio] AS RiskPrio, RFC_Risks.Reason 
FROM RFC_Risks INNER JOIN Risk_Reasons ON RFC_Risks.Reason = Risk_Reasons.Reasontext 
WHERE RFC_Risks.Reason = Risk_Reasons.Reasontext;

我无法发现有关您的 SQL 语句的任何内容,这会阻止它执行和/或引发错误。 (我认为您的 WHERE 子句是多余的,但这不应该导致数据库引擎拒绝它。)您使用什么方法来“运行”它?

如果您正在使用 Access 查询设计器,并从设计视图切换到数据表视图,您的查询实际上并没有被执行...数据表视图将向您显示在执行查询时会受到影响的行。

情况与您在查询设计器中构建删除查询相同...数据表视图将显示如果执行查询将删除哪些行,但切换到数据表视图不会删除这些行。

执行查询,请单击带有红色感叹号的图标。

尝试将子选择括在括号中。

您需要执行查询。 如果您只在数据表视图中显示它,则执行 SELECT 语句并作为一种预览显示给您。

要真正执行查询,当您处于设计模式时,您可以单击工具栏中的“运行”按钮(红色感叹号)。 也可以双击数据库window中的查询。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM