> Tech > Générer des scripts SQL

Générer des scripts SQL

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

Enterprise Manager offre une interface pour générer automatiquement des scripts T-SQL pour des éléments très divers: bases de données, tables, types définis par l'utilisateur, et autres composants de base de données. Bien que cet article définisse dynamiquement la base de données, vous pouvez générer statiquement T-SQL pour de nombreux éléments

Générer des scripts SQL

de base de données courants,
comme les tables et les procédures
cataloguées, en utilisant Enterprise
Manager. Comme ces scripts courants
jouent un rôle important dans l’installation
globale, voyons brièvement
quelques-uns des aspects les moins évidents
de la génération de ces scripts.

En faisant un clic droit sur un nom
de table ou de base de données dans
Enterprise Manager et en sélectionnant
la rubrique All Tasks, Generate SQL
Scripts dans le menu surgissant, on obtient
la fenêtre Generate SQL Scripts. La
figure 3 montre l’onglet General de
cette fenêtre, dans lequel j’ai sélectionné
plusieurs tables. Selon la manière
dont vous atteignez cet onglet, vous devrez
peut-être utiliser le bouton Show
All dans l’angle supérieur droit de l’onglet
pour voir toutes les tables source.
Vous pouvez aussi cocher l’une des
cases qui sélectionnent automatiquement
All objects, All tables, All stored
procedures, etc. Pour cet article, j’ai sélectionné
manuellement un sous-ensemble
d’éléments ne contenant que
des tables, pour simplifier l’octroi des
autorisations automatisées que j’explique
plus loin dans l’article. Je réutilise
ce processus plus loin pour créer un second
fichier T-SQL ne contenant que
des procédures cataloguées.

Après avoir sélectionné les objets,
tables, procédures cataloguées, etc., appropriés
sur l’onglet General, passez à 
l’onglet Formatting dans la fenêtre Generate SQL Scripts, illustrée figure 4.
La figure 4 contient des cases à  cocher
qui précisent comment scripter les objets
que vous sélectionnez. Si votre base
de données tourne sur un SQL Server
2000, vous pouvez faire que les scripts
restent compatibles avec SQL Server 7.0
en cochant la case Only script 7.0 compatible
features. Vous pouvez utiliser
Enterprise Manager de SQL Server 7.0
pour générer les scripts pour les bases
de données qui fonctionnent encore sur
SQL Server 7.0, mais compte tenu des
améliorations présentes dans le générateur
de scripts de SQL Server 2000, je
conseille d’utiliser Enterprise Manager
2000 s’il est disponible. De plus, si vous
avez créé des types de données définis
par l’utilisateur, vous devez cocher la
case Generate scripts for all dependent
objects pour ajouter les types de données
définis par l’utilisateur nécessaires
au script .sql.

La figure 4 montre également le modèle
du script du fichier généré. Ce fichier
a un format très spécifique, de
sorte que quand vous mettez en oeuvre
une lecture dynamique des fichiers .sql
générés pendant l’installation, vous
pouvez obtenir les noms d’objets dynamiquement
au moment de l’installation.
Il est plus facile d’utiliser du code pour
lire les noms des tables ou des procédures
cataloguées, si les tables se trouvent
dans un fichier .sql séparé des procédures
cataloguées. Notons que les
objets de base de données comme les
tables et les procédures cataloguées
contiennent des lignes de texte qui varient
et nécessitent des appels différents
pour définir leurs paramètres de sécurité
respectifs. Donc, il est plus facile
d’appliquer la sécurité à  un objet si on
connaît son type d’objet.

A ce stade de la génération de script,
si vous travaillez avec des objets autres
que des tables, vous pouvez cliquer sur
OK sur l’onglet Formatting pour générer
le script .sql. En revanche, si vous envisagez
d’utiliser un script .sql pour recréer
un ensemble de tables de base de
données, voici un avertissement important
: avant de cliquer sur OK, vous devez
passer à  l’onglet Options de la fenêtre
Generate SQL Scripts, illustrée figure
5. Cette étape est nécessaire parce
que dans SQL Server, les principaux éléments
de table comme les index, les triggers,
et les clés primaires et étrangères
ne sont pas définis par défaut. Si vous ne
cochez pas les quatre cases sélectionnées
dans la figure 5, votre installation
du script .sql n’inclura pas ces éléments.
Remarquons aussi dans la figure 5 le format
de fichier, Unicode par défaut. Cette
sélection convient ; nous verrons son
importance plus loin dans l’article.

Vous pouvez répéter les étapes de
génération de script pour créer des fichiers
script .sql pour certains groupes
ou pour tous les objets de la base de
données. Pour les besoins de la démonstration,
je fournis deux fichiers générés
que vous pouvez télécharger à 
partir du site: WhsDBStructures.sql,
qui contient des tables, et
WhsStoredProcedures.sql, qui contient
un sous-ensemble de procédures cataloguées.
Vous pouvez examiner ces fichiers
à  l’aide d’un éditeur de texte ou
les ouvrir dans Query Analyzer et les appliquer
à  une nouvelle base de données
pour créer les tables et les procédures
cataloguées. Après avoir généré les
scripts .sql, voyons comment créer les
tables de données statiques.

Téléchargez cette ressource

Comment sécuriser une PME avec l’approche par les risques ?

Comment sécuriser une PME avec l’approche par les risques ?

Disposant de moyens financiers et humains contraints, les PME éprouvent des difficultés à mettre en place une véritable stratégie de cybersécurité. Opérateur de services et d’infrastructures, Naitways leur propose une approche pragmatique de sécurité « by design » en priorisant les risques auxquelles elles sont confrontées.

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