> Tech > VI. Utiliser le plus possible les possibilités du Transact-SQL

VI. Utiliser le plus possible les possibilités du Transact-SQL

Tech - Par Renaud ROSSET - Publié le 24 juin 2010

A titre d’exemple, nous pouvons utiliser une requête récursive pour éviter l’appel coûteux à des curseurs ou plusieurs procédures stockées. Pour créer une requête récursive nous allons utiliser une expression de table commune (CTE, Common Table Expression). Dans cet exemple le but est de sortir la hiérarchie de la société

VI. Utiliser le plus possible les possibilités du Transact-SQL

AdventureWorks (base classique d’exemple de SQL Server)

Declare @EmpID Integer;
Select @EmpID = EmployeeID From HumanResources.Employee Where ManagerID is null;
— declaré une CTE appelée Emp
With Emp ( LoginID, EmployeeID, NomManager, ManagerID, ReportsToManagerID) As (
Select E1.LoginID, E1.EmployeeID, E2.LoginID, E2.EmployeeID,
( Select ManagerID From HumanResources.Employee E3 Where E3.EmployeeID = E2.EmployeeID ) AS ManagerID
From HumanResources.Employee E1
Join Humanresources.Employee E2
On E1.Managerid = E2.Employeeid
And E1.Managerid = @Empid

Union All
Select E1.LoginID, E1.EmployeeID, E2.LoginID, E2.EmployeeID,
( Select ManagerID From HumanResources.Employee E3 Where E3.EmployeeID = E2.EmployeeID ) AS ManagerID >
From HumanResources.Employee E1
Join Emp E2 — Appeler EMP récursivement
On E1.ManagerID = E2.EmployeeID
)
Select Substring (LoginID, Charindex(‘\’,LoginID)+1,len(LoginID)-Charindex(‘\’, LoginID)-1) , EmployeeID,
Substring (NomManager, Charindex(‘\’,NomManager)+1,len(NomManager)-Charindex(‘\’, NomManager)-1), ManagerID, ReportsToManagerID From Emp Order By ReportsToManagerID

L’utilisation de cette requête permet d’utiliser au maximum les possibilités du serveur et de limiter les transferts sur le réseau.

Téléchargez cette ressource

Sécuriser Microsoft 365 avec une approche Zero-Trust

Sécuriser Microsoft 365 avec une approche Zero-Trust

Découvrez comment renforcer la cyber-résilience de Microsoft 365 grâce à une approche Zero-Trust, une administration granulaire et une automatisation avancée. La technologie Virtual Tenant de CoreView permet de sécuriser et simplifier la gestion des environnements complexes, tout en complétant vos stratégies IAM, y compris dans les secteurs réglementés.

Les plus consultés sur iTPro.fr

A lire aussi sur le site

À la une de la chaîne Tech