首页 >数据库 >mysql教程 >如何在SQL Server中使用INNER JOIN正确删除行?

如何在SQL Server中使用INNER JOIN正确删除行?

Barbara Streisand
Barbara Streisand原创
2025-01-19 06:15:10654浏览

How to Correctly Delete Rows Using INNER JOIN in SQL Server?

SQL Server 中使用 INNER JOIN 删除行的正确方法

在 SQL Server 中使用 INNER JOIN 删除行时,务必避免常见的错误,这些错误可能导致操作失败。其中一个错误是省略要删除的表的明确指定。

遇到的错误:

运行以下代码时,会遇到错误消息:

<code class="language-sql">DELETE 
FROM WorkRecord2 
INNER JOIN Employee 
        ON EmployeeRun=EmployeeNo
WHERE Company = '1' 
    AND Date = '2013-05-06'</code>

错误消息如下:

Msg 156, Level 15, State 1, Line 15
关键字 'INNER' 附近的语法错误。

解决方案:

要纠正此错误,需要明确标识将被 DELETE 操作修改的表。这可以通过为表引入别名来实现。修改后的代码如下:

<code class="language-sql">DELETE w
FROM WorkRecord2 w
INNER JOIN Employee e
  ON EmployeeRun=EmployeeNo
WHERE Company = '1' AND Date = '2013-05-06'</code>

在此更新的代码中,“w”用作 WorkRecord2 表的别名。这确保 DELETE 语句将目标锁定在正确的表上以删除行。

以上是如何在SQL Server中使用INNER JOIN正确删除行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn