Siempre lo hago cuando publico aquí o en StackOverflow porque WITH
, dado que la palabra clave está sobrecargada, el comando anterior requiere un punto y coma final. Si pego una muestra de código que usa un CTE, inevitablemente algún usuario lo pegará en su código existente, y la declaración anterior no tendrá el punto y coma. Entonces el código se rompe y recibo quejas como:
¡Tu código se rompió! Recibí este mensaje de error:
Incorrect syntax near 'WITH'
...
Si bien me gustaría creer que la gente está mejorando al terminar siempre sus declaraciones con un punto y coma , prefiero evitar el ruido y siempre incluirlo. A algunas personas no les gusta, pero <shrug />
. Puede incluir tantos puntos y coma antes o después de una declaración válida como desee. Esto es valido:
;;;;SELECT 1;;;;;;;;;;;;SELECT 2;;;;;;;;SELECT 3;;;;;
Por lo tanto, no hay daño en que haya un punto y coma adicional precediendo a una declaración que, por definición, lo requiere. Es más seguro hacerlo incluso si no es tan bonito.
Tiene que estar redactado de manera extraña para entenderlo, pero "no terminar una declaración válida con un punto y coma" en realidad está en desuso desde SQL Server 2008. Entonces, como lo describo en la publicación del blog, hago un enlace arriba, incluso en los casos en que no es necesario omitir un error, debe usarse donde sea válido. Puedes ver esto aquí:
http://msdn.microsoft.com/en-us/library/ms143729.aspx
(Busque en la última página "punto y coma")
Por supuesto, no sería SQL Server si no hubiera excepciones. Prueba esto:
BEGIN TRY;
SELECT 1/1;
END TRY;
BEGIN CATCH;
SELECT 1/1;
END CATCH;
No es la única excepción a la regla, pero es la que me parece menos intuitiva.