¿Cómo eliminar usando INNER JOIN con SQL Server?

Quiero borrar usando INNER JOIN en SQL Server 2008.

Pero me sale este error:

Msg 156, Nivel 15, Estado 1, Línea 15 Sintaxis incorrecta cerca de la palabra clave 'INNER'.

Mi código:

DELETE FROM WorkRecord2 
INNER JOIN Employee ON EmployeeRun=EmployeeNo
WHERE Company = '1' AND Date = '2013-05-06'
Solución

Es necesario especificar de qué tabla se está borrando, aquí hay una versión con un alias:

DELETE w
FROM WorkRecord2 w
INNER JOIN Employee e
  ON EmployeeRun=EmployeeNo
WHERE Company = '1' AND Date = '2013-05-06'
Comentarios (10)

Sólo tiene que añadir el nombre de la tabla entre DELETE y FROM de donde quiere eliminar los registros porque tenemos que especificar la tabla a eliminar. También elimine la cláusula ORDER BY porque no hay nada que ordenar mientras se eliminan los registros.

Así que su consulta final debe ser así:

    DELETE WorkRecord2 
      FROM WorkRecord2 
INNER JOIN Employee 
        ON EmployeeRun=EmployeeNo
     WHERE Company = '1' 
       AND Date = '2013-05-06';
Comentarios (3)

Es posible que esto te sirva de ayuda -

DELETE FROM dbo.WorkRecord2 
WHERE EmployeeRun IN (
    SELECT e.EmployeeNo
    FROM dbo.Employee e
    WHERE ...
)

O prueba esto -

DELETE FROM dbo.WorkRecord2 
WHERE EXISTS(
    SELECT 1
    FROM dbo.Employee e
    WHERE EmployeeRun = e.EmployeeNo
        AND ....
)
Comentarios (1)