Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

t-sql : punto y coma ";" y "GO"

Estas en el tema de t-sql : punto y coma ";" y "GO" en el foro de SQL Server en Foros del Web. Una duda con el punto y coma (;) He usado el GO para separar lotes de código y sé cómo funciona, pero nunca había usado ...
  #1 (permalink)  
Antiguo 12/12/2012, 15:55
 
Fecha de Ingreso: septiembre-2005
Mensajes: 74
Antigüedad: 18 años, 7 meses
Puntos: 0
t-sql : punto y coma ";" y "GO"

Una duda con el punto y coma (;)

He usado el GO para separar lotes de código y sé cómo funciona, pero nunca había usado el ";" ...veo que en el msdn lo usan mucho en los scripts de ejemplo para separar código, cuál es la razón de usarlo? o cuál es la diferencia entre ";" y "GO".

Por ejemplo para mi es lo mismo ejecutar:

declare @a varchar(128)
set @a='asdf'
print @a

que esto:

declare @a varchar(128);
set @a='asdf';
print @a;

Saliudos.
  #2 (permalink)  
Antiguo 13/12/2012, 00:30
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: t-sql : punto y coma ";" y "GO"

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 ;).
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #3 (permalink)  
Antiguo 13/12/2012, 09:34
 
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.
  #4 (permalink)  
Antiguo 13/12/2012, 09:50
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: t-sql : punto y coma ";" y "GO"

hints, se denomina hit a ciertas instrucciones para hacer rendir mejor el rendimiento de tu query, por ejemplo si tienes muchos loops puedes hacer un hit (loop join) (merge hash) etc, para mas referencia te recomiendo preguntarle a san google lo siguiente:

sql server query hint

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 13/12/2012, 11:52
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: t-sql : punto y coma ";" y "GO"

En el siguiente código el With esta utilizado en otro contexto:
Código SQL:
Ver original
  1. SELECT * FROM sys.messages WITH (NoLock);
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog

Etiquetas: coma, punto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:40.