estoy usando SQL Server 2008 R2Diferencia entre las diferentes formas de escribir IF Existe?
sólo quiero probar si existe algo en una mesa
IF EXISTS (SELECT * FROM ta WHERE ca = 'abc') PRINT 'YES'
IF EXISTS (SELECT ca FROM ta WHERE ca = 'abc') PRINT 'YES'
IF EXISTS (SELECT 1 FROM ta WHERE ca = 'abc') PRINT 'YES'
IF EXISTS (SELECT (1) FROM ta WHERE ca = 'abc') PRINT 'YES'
IF EXISTS (SELECT TOP 1 1 FROM ta WHERE ca = 'abc') PRINT 'YES'
¿Tienen alguna diferencia en consecuencia/efecto secundario/rendimiento (no importa cuán pequeño)?
Gracias
Gracias! Entonces, ¿está implicando que esas consultas tienen algunas diferencias cuando no están vinculadas con IF EXISTS? – user1589188
@ user1589188: claro, si tiene un "SELECT *" "independiente", eso es malo porque obtiene (a) todas las columnas (¿realmente necesita *** todas las columnas ***?), (B) Usted no especifica qué columnas desea (podría sorprender gravemente si se agrega una columna BLOB como una imagen en algún momento) y así sucesivamente. Cuando no está dentro de un 'IF EXISTS (..)' Yo abogo por ** nunca ** use 'SELECT *' (definitivamente no en su código de producción) - siempre use ** explicit ** listas de columnas, y tome como pocas columnas como realmente lo necesitas –