> 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
email

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

Les 10 tendances clés de l’Expérience Client (CX) pour 2025

Les 10 tendances clés de l’Expérience Client (CX) pour 2025

Dans le contexte actuel, l'expérience client est un levier clé de réussite. Pour rester compétitives, les entreprises doivent adopter des stratégies CX audacieuses, en s'appuyant sur le cloud, le digital et l'IA. Alors quelles stratégies mettre en place pour garder une longueur d’avance ?

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