Como siempre, habrá una explicación razonable para mi sorpresa, pero hasta entonces ....SQL Server Management Studio 2008 no comprueba la sintaxis de mi consulta
tengo esta consulta
delete from Photo where hs_id in (select hs_id from HotelSupplier where id = 142)
que se ejecuta bien (más tarde descubrí que toda la tabla de fotos estaba vacía)
pero lo extraño: no hay campo hs_id
en HotelSupplier, se llama hs_key
!
Así que cuando ejecuto la última parte
select hs_id from HotelSupplier where id = 142
separado (seleccionar esa parte de la consulta con el ratón y pulsa F5), me sale un error, pero cuando lo uso en la cláusula in
, se no!
Me pregunto si esto es comportamiento normal?
+1 - Solo quería señalar explícitamente una buena práctica en su ejemplo, incluidos los nombres de tabla para cada una de las columnas (dos partes identificadores) a lo largo de su consulta. ¡Buena práctica en general, práctica invaluable en las declaraciones de eliminación! –
Gracias, no lo sabía. Aunque es extraño, eso (en tu versión simplificada también) el notn-existing 'select Photo.hs_id' no genera un error – Michel
@Michel - No es inexistente. Se trata como una subconsulta correlacionada y se evalúa para cada fila utilizando el valor transferido desde la consulta externa. –