Esempi di batch
Negli esempi seguenti vengono illustrati script che utilizzano l'editor del codice di Microsoft SQL Server Management Studio e il comando GO dell'utilità sqlcmd per definire l'inizio e la fine del batch.
Nell'esempio seguente viene creata una vista. Poiché CREATE VIEW deve essere l'unica istruzione del batch, è necessario utilizzare i comandi GO per isolarla dalle istruzioni USE e SELECT.
USE AdventureWorks;
GO
CREATE VIEW dbo.vProduct
AS
SELECT ProductNumber, Name
FROM Production.Product;
GO
SELECT *
FROM dbo.vProduct;
GO
Nell'esempio seguente viene illustrata la combinazione di numerosi batch in una transazione. Le istruzioni BEGIN TRANSACTION e COMMIT definiscono i limiti della transazione. Le istruzioni BEGIN TRANSACTION, USE, CREATE TABLE, SELECT e COMMIT sono incluse ognuna in un batch distinto, mentre le istruzioni INSERT sono incluse tutte in un solo batch.
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
Lo script seguente illustra due problemi. La variabile @MyVar è dichiarata nel secondo batch e vi viene fatto riferimento nel terzo. Inoltre, il secondo batch include l'inizio di un commento, ma non la fine, che si trova invece nel terzo batch. Quando l'utilità sqlcmd legge il comando GO, invia il primo batch a Microsoft SQL Server 2005 dove la stringa che inizia con il carattere /* priva del carattere di chiusura corrispondente */ genera un errore di sintassi.
USE AdventureWorks;
GO
DECLARE @MyVar INT
/* Start of the split comment.
GO
End of the split comment. */
SELECT @MyVar = 29;
GO