> Tech > Ajouter l’étape d’abandon (3)

Ajouter l’étape d’abandon (3)

Tech - Par iTPro - Publié le 24 juin 2010
email

Etape 3. Chez l'abonné, la procédure stockée à  distance utilise un objet COM qui appelle l'API SQL-DMO pour abandonner les index et contraintes de clés sur les tables de destination et sauvegarder leurs scripts de recréation.
Je recommande d'utiliser les objets SQL-DMO pour plusieurs raisons. Le scripting SQL - y

compris celui pour
la création d’index ou de contraintes
de clés – peut devenir complexe. Aussi,
il vaut mieux utiliser la fonctionnalité
de génération de script de SQL Server
que de créer manuellement les scripts
au moyen du code T-SQL.
Enterprise
Manager vous permet de générer
DROP, CREATE INDEX, et des scripts
de contraintes de clés pour l’ensemble
de tables de destination en faisant un
clic droit sur la table d’un abonné, en
sélectionnant All Tasks puis Generate
SQL Script. Cependant, tout changement
apporté aux index, aux contraintes de clés, aux articles, et à  l’abonnement rend les scripts obsolètes.

SQL-DMO offre une méthode
Script pour presque tous les objets. La
méthode Script renvoie une instruction
SQL qui peut servir à  recréer l’objet
référencé. Une fois que l’étape drop a sauvegardé tous les scripts des index
et des contraintes de clés existants
pour les tables de destination dans une
procédure stockée chez l’abonné,
l’étape recreate du job Distribution
Agent correspondant peut s’exécuter à 
distance.

Etape 4. Pour faciliter l’utilisation des objets SQL-DMO et de leurs méthodes Script dans la procédure stockée
à  distance, vous pouvez encapsuler
tout le code SQL-DMO dans un
composant COM personnalisé. Ce
composant expose une méthode d’interface
simple que la procédure stockée
peut appeler. La méthode pilote
tout l’abandon et le scripting. J’ai
nommé ce composant Hubindex, l’interface
TableIndex, et la méthode
Drop_Save_Table_Indexes. J’ai également
mis en oeuvre ce composant
comme un serveur in-process qui
s’exécute dans le même espace mémoire
que celui de la procédure stockée.
Dans VB (Visual Basic), vous créez
ce composant en utilisant un projet
ActiveX DLL, et vous devez vérifier la
référence à  la SQL-DMO Object Library.

SQL Server offre des procédures
stockées OLE Automation comme
sp_OACreate pour créer un objet COM
et sp_OAMethod pour appeler sa méthode.
Le listing 3 montre comment
j’ai utilisé ces procédures stockées OLE
Automation dans la procédure stockée
à  distance. Une fois en possession
de HubIndex.TableIndex, l’identificateur
programmatique (ProgID) d’un
objet OLE, sp_OACreate crée l’objet et émet un jeton objet qui identifie cet
objet dans T-SQL. Vous devez transmettre
ce jeton d’objet quand vous utilisez
sp_OAMethod pour appeler la
méthode Drop_Save_Table_Indexes
de cette objet. Pour examiner un script
qui montre comment utiliser les procédures
stockées OLE Automation,
voir le sujet « OLE Automation Sample
Script » dans BOL.

Téléchargez gratuitement cette ressource

Guide de Services Cloud Managés

Guide de Services Cloud Managés

Accélérer votre transformation digitale, protéger et sécuriser vos environnements Cloud avec les offres de support, d'accompagnement et de services managés. Découvrez le TOP 3 des Services Managés pour accompagner la transformation de vos environnements Cloud, gagner en agilité et en sécurité dans un monde d'incertitudes.

Tech - Par iTPro - Publié le 24 juin 2010