Ver Mensaje Individual
  #3 (permalink)  
Antiguo 13/12/2012, 09:34
sirguille
 
Fecha de Ingreso: septiembre-2005
Mensajes: 74
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: t-sql : punto y coma ";" y "GO"

Cita:
Iniciado por GeriReshef Ver Mensaje
El ; no es obligatorio, pero es necesario para evitar ambegüedades. Por ejemplo- la palabra With puede estar en el medio de la instrucción como un Hint, o al principio en caso de CTE.
El sistema no puede diferenciar entre ambos casos del With sin el ; que termina la instrucción anterior.
El siguiente código resulta en un error
Código SQL:
Ver original
  1. DECLARE @I INT
  2. SET     @I=1
  3. WITH T AS
  4. (SELECT *
  5. FROM    sys.objects
  6. WHERE   schema_id=@I)
  7. SELECT  *
  8. FROM    T
y el siguiente no:
Código SQL:
Ver original
  1. DECLARE @I INT;
  2. SET     @I=1;
  3. WITH T AS
  4. (SELECT *
  5. FROM    sys.objects
  6. WHERE   schema_id=@I)
  7. SELECT  *
  8. FROM    T;
Por lo tanto es recomendable acostumbrar a utilizar siempre el ;.

El Go termina el Batch (y no la instrucción como el ;).
CTE lo entiendo, pero cómo es eso de " la palabra With puede estar en el medio de la instrucción como un Hint"? nunca había escuchado de HINT.

Saludos.