Spécification de traitements
Les traitements sont mis en œuvre dans les API de bases de données.
Avec ADO, un traitement 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 traitement 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 traitement 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 traitement 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 traitement. GO n'est pas une instruction Transact-SQL ; elle indique simplement aux utilitaires le nombre d'instructions SQL pouvant être incluses dans un traitement. 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 traitement est compilé en un seul plan d'exécution, il doit être logiquement complet. Le plan d'exécution créé pour un traitement ne peut pas faire référence à des variables déclarées dans un autre traitement. Les commentaires doivent commencer et se terminer dans un seul traitement.