Exemples de traitements
Ces exemples sont des scripts qui utilisent l'éditeur de code de MicrosoftSQL Server Management Studio et la commande GO de l'utilitaire sqlcmd pour définir les limites d'un traitement.
L'exemple suivant crée une vue. Puisque l'instruction CREATE VIEW doit être l'unique instruction d'un traitement, les instructions GO doivent l'isoler des instructions USE et SELECT qui l'entourent.
USE AdventureWorks;
GO
CREATE VIEW dbo.vProduct
AS
SELECT ProductNumber, Name
FROM Production.Product;
GO
SELECT *
FROM dbo.vProduct;
GO
L'exemple suivant représente plusieurs traitements combinés en une même transaction. Les instructions BEGIN TRANSACTION et COMMIT délimitent la transaction. Les instructions BEGIN TRANSACTION, USE, CREATE TABLE, SELECT et COMMIT figurent dans leur propre traitement (comprenant chacun une instruction unique). Toutes les instructions INSERT sont incluses dans un seul traitement.
BEGIN TRANSACTION
GO
USE AdventureWorks;
GO
CREATE TABLE dbo.mycompanies
(
id_num int IDENTITY(100, 5),
company_name nvarchar(100)
)
GO
INSERT mycompanies (company_name)
VALUES (N'A Bike Store');
INSERT mycompanies (company_name)
VALUES (N'Progressive Sports');
INSERT mycompanies (company_name)
VALUES (N'Modular Cycle Systems');
INSERT mycompanies (company_name)
VALUES (N'Advanced Bike Components');
INSERT mycompanies (company_name)
VALUES (N'Metropolitan Sports Supply');
INSERT mycompanies (company_name)
VALUES (N'Aerobic Exercise Company');
INSERT mycompanies (company_name)
VALUES (N'Associated Bikes');
INSERT mycompanies (company_name)
VALUES (N'Exemplary Cycles');
GO
SELECT id_num, company_name
FROM dbo.mycompanies
ORDER BY company_name ASC;
GO
COMMIT;
GO
Le script ci-dessous illustre deux problèmes. En premier lieu, la variable @MyVar est déclarée dans le second traitement mais est référencée dans le troisième. Ensuite, le deuxième traitement comporte le début d'un commentaire mais pas la fin. Si le troisième traitement contient bien la fin du commentaire, lorsque sqlcmd lit la commande GO, il envoie le premier traitement à MicrosoftSQL Server 2005, dans lequel le commentaire */ with no matching /* génère une erreur de syntaxe.
USE AdventureWorks;
GO
DECLARE @MyVar INT
/* Start of the split comment.
GO
End of the split comment. */
SELECT @MyVar = 29;
GO