> Data > Le curseur réutilisable

Le curseur réutilisable

Data - Par iTPro.fr - Publié le 24 juin 2010
email

Mis en ligne le 13/04/2005 - Publié en Juin 2004

Le plein de conseils...
 

Je souhaite fréquemment effectuer des opérations telles que
l’actualisation de vues, le contrôle des données de tables, la
création d’instructions SQL, la reconstruction d’index ou
encore la modification de la structure de table pour de
nombreux objets simultanément. Afin d’effectuer ce type
d’opération en bloc, je conserve à  portée de main un curseur
SQL servant de modèle et je le modifie en fonction des besoins.


Le script du listing 1 ouvre un curseur sur la table spécifiée
dans l’instruction SELECT (dans notre exemple, la table
sysobjects), puis effectue une boucle sur chaque enregistrement
du curseur afin d’affecter la variable @OjbectName au
contenu du champ de nom courant. Le script utilise cette variable
pour créer une instruction EXEC qui exécutera l’opération
souhaitée. Notre exemple actualise toutes les vues détenues
par db_owner.

En changeant l’instruction SELECT dans le curseur, vous
pouvez effectuer des opérations sur n’importe quel objet de
base de données, utiliser une clause WHERE pour limiter
l’ensemble de résultats retourné, voire ajouter une clause
ORDER BY. Il est également possible de modifier la portion
EXEC du curseur afin de réaliser un large éventail d’opérations
sur les objets retournés par l’instruction SELECT. Par
exemple, le listing 2 montre comment modifier le curseur
afin d’ajouter un champ Timestamp à  chaque table de la base
de données. Si vous souhaitez limiter l’ajout à  30 tables
seulement, il suffit de changer l’instruction SELECT afin de
retourner uniquement les tables concernées. En remplaçant
l’instruction EXEC par PRINT, vous pouvez générer aisément
un script T-SQL et l’enregistrer en vue d’une exécution
ultérieure. Avec un peu d’imagination, cette technique de
curseur peut servir à  exécuter de nombreuses opérations qui
vous feront gagner du temps.

Téléchargez gratuitement cette ressource

IBMi et Cloud : Table ronde Digitale

IBMi et Cloud : Table ronde Digitale

Comment faire évoluer son patrimoine IBMi en le rendant Cloud compatible ? Comment capitaliser sur des bases saines pour un avenir serein ? Faites le point et partagez l'expertise Hardis Group et IBM aux côtés de Florence Devambez, DSI d'Albingia.

Data - Par iTPro.fr - Publié le 24 juin 2010