Ejemplos de lotes

Estos ejemplos son scripts que utilizan el editor de código de MicrosoftSQL Server Management Studio y el comando GO de la utilidad sqlcmd para definir los límites del lote.

En el siguiente ejemplo se crea una vista. Puesto que CREATE VIEW debe ser la única instrucción en un lote, se necesitan instrucciones GO para aislar la instrucción CREATE VIEW de las instrucciones USE y SELECT que hay alrededor.

USE AdventureWorks;
GO 
CREATE VIEW dbo.vProduct
AS
SELECT ProductNumber, Name
FROM Production.Product;
GO 
SELECT * 
FROM dbo.vProduct;
GO 

En el siguiente ejemplo, se muestran varios lotes combinados en una transacción. Las instrucciones BEGIN TRANSACTION y COMMIT delimitan los límites de la transacción. Las instrucciones BEGIN TRANSACTION, USE, CREATE TABLE, SELECT y COMMIT se encuentran en sus propios lotes de instrucción única. Todas las instrucciones INSERT se incluyen en el mismo lote.

BEGIN TRANSACTION
GO
USE AdventureWorks;
GO
CREATE TABLE dbo.mycompanies
(
 id_num int IDENTITY(100, 5),
 company_name nvarchar(100)
)
GO
INSERT mycompanies (company_name)
   VALUES (N'A Bike Store');
INSERT mycompanies (company_name)
   VALUES (N'Progressive Sports');
INSERT mycompanies (company_name)
   VALUES (N'Modular Cycle Systems');
INSERT mycompanies (company_name)
   VALUES (N'Advanced Bike Components');
INSERT mycompanies (company_name)
   VALUES (N'Metropolitan Sports Supply');
INSERT mycompanies (company_name)
   VALUES (N'Aerobic Exercise Company');
INSERT mycompanies (company_name)
   VALUES (N'Associated Bikes');
INSERT mycompanies (company_name)
   VALUES (N'Exemplary Cycles');
GO

SELECT id_num, company_name
FROM dbo.mycompanies
ORDER BY company_name ASC;
GO
COMMIT;
GO

El siguiente script presenta dos problemas. En primer lugar, la variable @MyVar se declara en el segundo lote y se hace referencia a ella en el tercero. Además, el segundo lote tiene el inicio de un comentario, pero no el final. El tercer lote tiene el final del comentario, pero, cuando sqlcmd lee la instrucción GO, envía el primer lote a MicrosoftSQL Server 2005, donde los signos /* sin los signos */ correspondientes generan un error de sintaxis.

USE AdventureWorks;
GO
DECLARE @MyVar INT
/* Start of the split comment.
GO
End of the split comment. */
SELECT @MyVar = 29;
GO

Vea también

Conceptos