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中文网其他相关文章!