일괄 처리 예

다음은 Microsoft SQL Server Management Studio 코드 편집기와 sqlcmd 유틸리티 GO 명령을 사용하여 일괄 처리 경계를 정의하는 스크립트의 예입니다.

다음 예에서는 뷰를 만듭니다. CREATE VIEW는 일괄 처리의 유일한 문이어야 하므로 CREATE VIEW 문을 앞뒤에 있는 USE 및 SELECT 문과 분리하기 위해 GO 명령이 필요합니다.

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

다음 예에서는 몇 개의 일괄 처리가 하나의 트랜잭션으로 결합된 것을 보여 줍니다. BEGIN TRANSACTION 및 COMMIT 문은 트랜잭션 경계를 정합니다. BEGIN TRANSACTION, USE, CREATE TABLE, SELECT 및 COMMIT 문은 모두 자체의 단일 문 일괄 처리에 있습니다. 모든 INSERT 문은 하나의 일괄 처리에 포함됩니다.

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

다음 스크립트에서는 두 가지 문제를 보여 줍니다. 첫째, @MyVar 변수가 두 번째 일괄 처리에서 선언되고 세 번째 일괄 처리에서 참조됩니다. 둘째, 두 번째 일괄 처리에 주석의 시작만 있고 끝이 없습니다. 세 번째 일괄 처리에서는 주석의 끝은 있지만 sqlcmd가 GO 명령을 읽은 후 /*만 있고 대응하는 */가 없어 구문 오류가 발생하는 Microsoft SQL Server 2005 로 첫 번째 일괄 처리를 보냅니다.

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