일괄 처리 지정
일괄 처리는 데이터베이스 API의 일부로 구현됩니다.
ADO에서 일괄 처리는 Command 개체의 CommandText 속성에 포함되어 있는 Transact-SQL 문의 문자열입니다.
Dim Cmd As New ADODB.Command Set Cmd.ActiveConnection = Cn Cmd.CommandText = "SELECT * FROM Purchasing.Vendor; SELECT * FROM Production.Product" Cmd.CommandType = adCmdText Cmd.Execute
OLE DB에서 일괄 처리는 다음과 같은 명령 텍스트를 설정하는 데 사용되는 문자열에 포함된 Transact-SQL 문의 문자열입니다.
WCHAR* wszSQLString = L"SELECT * FROM HumanResources.Employee; SELECT * FROM Production.Product"; hr = pICommandText->SetCommandText (DBGUID_DBSQL, wszSQLString)
ODBC에서 일괄 처리는 SQLPrepare 또는 SQLExecDirect 호출에 포함된 Transact-SQL 문의 문자열입니다.
SQLExecDirect(hstmt1, "SELECT * FROM HumanResources.Employee; SELECT * FROM Production.Product", SQL_NTS):
Microsoft Access와 같은 일부 데이터 액세스 도구에는 명시적 일괄 처리 종결자가 없습니다.
GO 명령
Microsoft SQL Server Management Studio, sqlcmd 유틸리티 및 osql 유틸리티는 GO 명령을 사용하여 일괄 처리의 끝을 표시합니다. GO는 Transact-SQL 문이 아니며 단지 일괄 처리에 포함되어야 하는 SQL 문의 수를 유틸리티에 알려 주는 기능을 수행합니다. SQL Server Management Studio 및 osql에서 GO 명령에서 다음 GO 명령까지의 모든 Transact-SQL 문은 SQLExecDirect로 보내는 문자열에 포함됩니다.
예를 들어 이러한 문이 SQL Server Management Studio에서 실행되는 경우
SELECT @@VERSION
SET NOCOUNT ON
GO
SQL Server Management Studio는 다음에 해당하는 작업을 실행합니다.
SQLExecDirect(hstmt,
"SELECT @@VERSION SET NOCOUNT ON",
SQL_NTS);
일괄 처리는 단일 실행 계획으로 컴파일되므로 일괄 처리는 논리적으로 완벽해야 합니다. 하나의 일괄 처리를 위해 생성된 실행 계획에서는 다른 일괄 처리에서 선언된 변수를 참조할 수 없습니다. 주석은 한 일괄 처리 내에서 시작하고 끝나야 합니다.