Quiero eliminar usando INNER JOINen SQL Server 2008 .
Pero me sale este error:
Mensaje 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'
sql
sql-server
sql-server-2008
inner-join
sql-delete
nettoon493
fuente
fuente

DELETEcon una combinaciónRespuestas:
Debe especificar de qué tabla está eliminando, aquí hay una versión con un alias:
fuente
Simplemente agregue el nombre de la tabla entre
DELETEyFROMdesde donde desea eliminar registros porque tenemos que especificar la tabla que desea eliminar. También elimine laORDER BYcláusula porque no hay nada que pedir al eliminar registros.Entonces su consulta final debería ser así:
fuente
DELETE Employeese eliminará de la tabla del empleado en lugar de laWorkRecord2tabla.Posible que esto sea útil para usted.
O prueba esto ...
fuente
Prueba esto:
fuente
Debería ser:
fuente
Esta versión debería funcionar
fuente
En SQL Server Management Studio puedo crear fácilmente una
SELECTconsulta.Puedo ejecutarlo y se muestran todos mis contactos.
Ahora cambie el
SELECTa aDELETE:SELECTSe eliminarán todos los registros que vio en la declaración.Incluso puede crear una unión interna más difícil con el mismo procedimiento, por ejemplo:
fuente
fuente
Prueba esta consulta:
fuente
Otra forma de usar
CTE.Nota: No podemos usar el
JOINinteriorCTEcuando lo deseedelete.fuente
Esta es una consulta simple para eliminar los registros de dos tablas a la vez.
fuente
Intenta esto, podría ayudar
fuente
Aquí está mi versión de SQL Server
fuente
No especifica las tablas para
CompanyyDate, es posible que desee solucionarlo.SQL estándar usando
MERGE:La respuesta de @Devart también es SQL estándar aunque incompleta, debería verse más así:
Lo importante a tener en cuenta sobre lo anterior es que está claro que la eliminación está dirigida a una sola tabla, como se impone en el segundo ejemplo al requerir una subconsulta escalar.
Para mí, las diversas respuestas de sintaxis patentadas son más difíciles de leer y comprender. Supongo que la mentalidad para se describe mejor en la respuesta de @frans eilering, es decir, la persona que escribe el código no necesariamente se preocupa por la persona que leerá y mantendrá el código.
fuente
Esto es lo que uso actualmente para eliminar o incluso actualizar:
fuente