Especificar lotes
Los lotes se implementan como parte de las API de bases de datos.
En ADO, un lote es una cadena de instrucciones Transact-SQL incluida en la propiedad CommandText de un objeto Command:
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
En OLE DB, un lote es una cadena de instrucciones Transact-SQL incluida en la cadena usada para establecer el texto del comando:
WCHAR* wszSQLString = L"SELECT * FROM HumanResources.Employee; SELECT * FROM Production.Product"; hr = pICommandText->SetCommandText (DBGUID_DBSQL, wszSQLString)
En ODBC, un lote es una cadena de instrucciones Transact-SQL incluida en una llamada a SQLPrepare o SQLExecDirect:
SQLExecDirect(hstmt1, "SELECT * FROM HumanResources.Employee; SELECT * FROM Production.Product", SQL_NTS):
Algunas herramientas de acceso a datos, como Microsoft Access, no tienen un terminador explícito de lotes.
Comando GO
Microsoft SQL Server Management Studio, la herramienta sqlcmd y la herramienta osql utilizan el comando GO para señalar final de un lote. GO no es una instrucción Transact-SQL; simplemente indica a las herramientas el número de instrucciones SQL que se deben incluir en un lote. En SQL Server Management Studio y osql, todas las instrucciones Transact-SQL que se encuentran entre un comando GO y el siguiente se colocan en la cadena enviada a SQLExecDirect.
Por ejemplo, si las siguientes instrucciones se ejecutan en SQL Server Management Studio:
SELECT @@VERSION
SET NOCOUNT ON
GO
SQL Server Management Studio realiza el equivalente a:
SQLExecDirect(hstmt,
"SELECT @@VERSION SET NOCOUNT ON",
SQL_NTS);
Puesto que un lote se compila en un único plan de ejecución, debe ser completo lógicamente. El plan de ejecución creado para un lote no puede hacer referencia a ninguna de las variables declaradas en otro lote. Los comentarios deben iniciarse y finalizar en el mismo lote.
Vea también
Otros recursos
GO (Transact-SQL)
sqlcmd (utilidad)
osql (utilidad)