Si tenemos una declaración SELECT
dentro de un IF EXISTS
, ¿la ejecución se detiene tan pronto como encuentra un registro en la tabla? Por ejemplo:SI EXISTE en T-SQL
IF EXISTS(SELECT * FROM table1 WHERE Name='John')
return 1
else
return 0
Si existe una fila en la tabla con el nombre = John, ¿se detiene la ejecución y devuelve 1 o se atraviesa a través de toda la tabla en busca de más partidos?
FYI, también se podría considerar el uso de SELECT 1 en lugar de SELECT * para que pueda aprovechar mejor los índices (no recuperar todos los campos de la mesa). – sfuqua
@sfuqua [Este es un mito] (http://bradsruminations.blogspot.com/2009/09/age-old-select-vs-select-1-debate.html) –
IF EXISTS (SELECCIONE 1/0 FROM table1 DONDE Name = 'John') ... esto no será un error ... SQL nunca evalúa el 'SELECT' ... solo está mirando el' WHERE'. –