Quiero eliminar usando INNER JOIN
en 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
DELETE
con 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
DELETE
yFROM
desde donde desea eliminar registros porque tenemos que especificar la tabla que desea eliminar. También elimine laORDER BY
cláusula porque no hay nada que pedir al eliminar registros.Entonces su consulta final debería ser así:
fuente
DELETE Employee
se eliminará de la tabla del empleado en lugar de laWorkRecord2
tabla.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
SELECT
consulta.Puedo ejecutarlo y se muestran todos mis contactos.
Ahora cambie el
SELECT
a aDELETE
:SELECT
Se 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
JOIN
interiorCTE
cuando 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
Company
yDate
, 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