使用SELECT和INNER JOIN进行SQL INSERT INTO

时间:2011-08-12 12:55:52

标签: sql ms-access select insert inner-join

嘿伙计们,我希望你能帮助我解决这个小问题。

我不太清楚如何向你解释这种情况所以我只是试一试。

我要做的是以下内容:

我想在表RFC_Risks中插入一些特定的值和参数(我自己键入),所以基本上每当我在表RCF_Risks中找到特定原因时,我想写一个更新优先级的新行RfC,每次发生时,位置应增加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;

3 个答案:

答案 0 :(得分:3)

我无法发现有关SQL语句的任何信息,这会阻止它执行和/或抛出错误。 (我认为你的WHERE子句是多余的,但这不应该导致db引擎拒绝它。)你用什么方法“运行”它?

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

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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