Specifica di batch

I batch vengono implementati come parte delle API di database.

  • In ADO un batch corrisponde alla stringa di istruzioni Transact-SQL inclusa nella proprietà CommandText di un oggetto 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
    
  • In OLE DB un batch corrisponde alla stringa di istruzioni Transact-SQL inclusa nella stringa utilizzata per l'impostazione del testo del comando:

    WCHAR* wszSQLString =
    L"SELECT * FROM HumanResources.Employee; SELECT * FROM Production.Product";
    hr = pICommandText->SetCommandText
          (DBGUID_DBSQL, wszSQLString)
    
  • In ODBC un batch corrisponde alla stringa di istruzioni Transact-SQL inclusa in una chiamata a SQLPrepare o SQLExecDirect:

    SQLExecDirect(hstmt1,
       "SELECT * FROM HumanResources.Employee; SELECT * FROM Production.Product",
    SQL_NTS):
    

In alcuni strumenti di accesso ai dati, ad esempio Microsoft Access, non è disponibile un carattere esplicito di terminazione dei batch.

Comando GO

Microsoft SQL Server Management Studio, l'utilità sqlcmd e l'utilità osql utilizzano il comando GO per segnalare la fine di un batch. Tale comando non è un'istruzione Transact-SQL, ma indica semplicemente il numero di istruzioni SQL da includere in un batch. In SQL Server Management Studio e nell'utilità osql tutte le istruzioni Transact-SQL incluse tra un comando GO e il successivo vengono inserite nella stringa inviata a SQLExecDirect.

Ad esempio, se queste istruzioni vengono eseguite in SQL Server Management Studio:

SELECT @@VERSION
SET NOCOUNT ON
GO

SQL Server Management Studio esegue l'equivalente di:

SQLExecDirect(hstmt,
"SELECT @@VERSION SET NOCOUNT ON",
SQL_NTS);

Ogni batch, essendo compilato in un singolo piano di esecuzione, deve essere logicamente completo. Nel piano di esecuzione creato in base a un determinato batch non è possibile fare riferimento alle variabili dichiarate in un altro batch. I commenti inoltre devono essere contenuti completamente in un solo batch.