Compartilhar via


Exemplos de lote

Esses exemplos são scripts que usam o editor de códigos MicrosoftSQL Server Management Studio e o comando GO do utilitário sqlcmd para definir os limites do lote.

O exemplo a seguir cria uma visualização. Em razão do CREATE VIEW ser a única instrução em um lote, os comandos GO são necessários para isolar a instrução CREATE VIEW das instruções USE e SELECT ao redor dela.

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

O exemplo seguinte mostra vários lotes combinados em uma transação. As instruções BEGIN TRANSACTION e COMMIT delimitam os limites da transação. As instruções BEGIN TRANSACTION, USE, CREATE TABLE, SELECT e COMMIT estão todas em seus próprios lotes de única instrução. Todas as instruções INSERT estão inclusas em um 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

O script seguinte ilustra dois problemas. Primeiro, a variável @ MyVar é declarada no segundo lote e referenciada no terceiro. Além disso, o segundo lote tem o início de um comentário, mas nenhum término. O terceiro lote tem o término de um comentário, mas quando o sqlcmd lê o comando GO ele envia o primeiro lote para o MicrosoftSQL Server 2005 onde o/* sem associação */ gera um erro de sintaxe.

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

Consulte também

Conceitos