T-SQL ¿Cuándo debo usar GO?

Iniciado por DanteInfernum, 17 Septiembre 2013, 19:42 PM

0 Miembros y 2 Visitantes están viendo este tema.

DanteInfernum

Tengo el siguiente script de ejemplo para crear una base de datos:


Código (sql) [Seleccionar]
use master
go
create database Prueba
go
use Prueba
go
Create table Empleados(A, B, C)
go
Create table Secciones(D, E, F)
go
insert into Empleados values('Ana', 'Sosa', 'Yi 1111')
insert into Empleados values('Eva', 'Rocha')
go
insert into Secciones values('Cre', 'Credito')
        insert into Secciones values('Ger', 'Gerencia')



Mis preguntas: ¿Es absolutamente necesario usar el GO cada vez que creo algo? Porque he visto que perfectamente puedo omitir algunos y el script se sigue ejecutando tal cual lo hacía antes. ¿Es una buena práctica usar tantos GO cómo sea posible?

DanteInfernum

#1
Voy agregando lo que vaya encontrando. Talvez le sirva a alguien más.


"La instrucción CREATE PROCEDURE no se puede combinar con otras instrucciones Transact-SQL en un único lote."

O sea, si el procedimiento que estoy creando no encabeza el script, debe de ser precedido por un GO, de modo tal que el procedimiento se enviará al servidor en un lote destinado exclusivamente para esto.

--------------------

Edito:

"Las instrucciones CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE SCHEMA, CREATE TRIGGER y CREATE VIEW no pueden combinarse con otras instrucciones de un lote. El lote debe empezar con una instrucción CREATE. Las siguientes instrucciones del lote se interpretarán como parte de la definición de la primera instrucción CREATE."

Moraleja: cada vez que se use un CREATE algo, hay que poner un GO antes.