Spécification de lots d'instructions

Les lots sont mis en œuvre dans les API de bases de données.

  • Avec ADO, un lot d'instructions est la chaîne d'instructions Transact-SQL incluse dans la propriété CommandText d'un objet 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
    
  • Avec OLE DB, un lot d'instructions est la chaîne d'instructions Transact-SQL incluse dans la chaîne utilisée pour définir le texte de la commande :

    WCHAR* wszSQLString =
    L"SELECT * FROM HumanResources.Employee; SELECT * FROM Production.Product";
    hr = pICommandText->SetCommandText
          (DBGUID_DBSQL, wszSQLString)
    
  • Dans ODBC, un lot est la chaîne d'instructions Transact-SQL incluse dans un appel SQLPrepare ou SQLExecDirect :

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

Certains outils d'accès aux données, comme Microsoft, n'ont pas de terminateur de lot explicite.

Commande GO

Microsoft SQL Server Management Studio, ainsi que les utilitaires sqlcmd et osql, utilisent la commande GO pour marquer la fin d'un lot. GO n'est pas une instruction Transact-SQL ; elle indique simplement aux utilitaires le nombre d'instructions SQL pouvant être incluses dans un lot. Dans SQL Server Management Studio et osql, toutes les instructions Transact-SQL entre deux commandes GO sont insérées dans la chaîne envoyée à SQLExecDirect.

Par exemple, si les instructions suivantes sont exécutées dans SQL Server Management Studio :

SELECT @@VERSION
SET NOCOUNT ON
GO

SQL Server Management Studio effectue l'équivalent de :

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

Étant donné qu'un lot est compilé en un seul plan d'exécution, il doit être logiquement complet. Le plan d'exécution créé pour un lot ne peut pas faire référence à des variables déclarées dans un autre lot. Les commentaires doivent commencer et se terminer dans un seul lot.

Voir aussi

Autres ressources

GO (Transact-SQL)
Utilitaire sqlcmd
Utilitaire osql

Aide et Informations

Assistance sur SQL Server 2005