![Free-eBooks.net](/resources/img/logo-nfe.png)
![All New Design](/resources/img/allnew.png)
Pour modifier une table sous SQL Server, vous avez deux possibilités : en utilisant l’interface
de « Microsoft SQL Server Management Studio » ou par le code.
En utilisant l’interface
Nous devons modifier manuellement les types, car dans Power AMC, il n’y a pas tous les types
que propose SQL Server. Pour modifier une table manuellement, cliquez droit sur la table à
modifier puis « Création ».
51
Vous pouvez alors modifier les données à votre guise.
À noter qu’avec SQL Server, vous avez également la possibilité de préciser si on peut
autoriser les types null (données absentes) en cochant les cases.
Définissons également les contraintes répondant à l’énoncé du problème : « Le numéro de
commande est un champ compteur auto incrémenté de 1 ». On indiquera « oui » à (est
d’identité) sur-le-champ NUMCOM.
Il suffit d’utiliser le menu déroulant et de sélectionner « Oui ».
52
« La date de commande est par défaut la date du jour ». Pour la colonne DATCOM on utilisera
la formule getdate().
Le problème, c’est que nous avons contraint notre colonne à la date du jour. Il n’est par
conséquent pas possible de saisir une autre date que la date du jour. On supprime donc la
formule précédente. Remontez en haut des propriétés de la colonne et inscrivez getdate() à
« Valeur ou liaison par défaut ». La colonne proposera la date du jour, mais celle-ci sera alors
modifiable.
« L’indice de satisfaction est compris dans une échelle de 1 à 10 ». Cliquez droit dans la table
correspondante puis « Vérifier les contraintes ».
53
Cliquez sur « Ajouter » pour ajouter une contrainte. Dans expression, saisissez votre
contrainte : [SATISF]>=(1) AND [SATISF]<=(10)
Les parenthèses s’ajoutent automatiquement.
« Le code postal est constitué de 5 chiffres ». De la même manière, on ajoute une deuxième
contrainte. Nous saisirons : [POSFOU] like '[0-9][0-9][0-9][0-9][0-9]'
54
Il existe aussi des contraintes avec des règles de mises à jour ou de suppression en cas de
spécification d’un INSERT ou d’un UPDATE. Pour mieux comprendre cette notion, nous
allons prendre un exemple concret. Nous allons modifier les contraintes des tables LIGCOM,
PRODUIT et VENDRE de façon à ce que lorsque nous modifierons le code d’un produit de la
table PRODUIT (à l’aide d’une instruction UPDATE par le langage SQL), la mise à jour se
reporte automatiquement sur les tables LIGCOM et VENDRE. Pour cela nous spécifions la règle
de mise à jour « En cascade » comme ci-dessous sur l’écran des Relations de clé étrangère.
Nous procédons donc de cette façon pour les tables LIGCOM, VENDRE et PRODUIT. Une fois
les relations de chacune des tables modifiées, nous allons mettre à jour notre table PRODUIT.
Mettons à jour le code de l’article « I100 » par exemple.
55
Nous changeons le code de l’article en « I10C ». On enregistre les modifications et on
actualise notre base de données.
On interroge maintenant la table VENDRE. On constate que celle-ci a été modifiée
automatiquement.
C’est la même chose pour la table LICOM.
56
De la même manière, on pourrait appliquer les règles suivantes :
Règle de suppression : Spécifie ce qui se produit si un utilisateur tente de mettre à jour une
ligne contenant des données impliquées dans une relation de clé étrangère.
Aucune action : Un message d'erreur indique à l'utilisateur que la suppression n'est
pas autorisée et la commande DELETE est annulée.
Cascade : Supprime toutes les lignes contenant des données qui interviennent dans la
relation de clé étrangère.
Définir Null : définis la valeur null si toutes les colonnes clés étrangères de la table
peuvent accepter des valeurs null.
Définir la valeur par défaut : définis la valeur par défaut définie pour la colonne si
toutes les colonnes clés étrangères de la table ont des valeurs par défaut définies.
Règle de mise à jour : Spécifie ce qui se produit si un utilisateur tente de mettre à jour une
ligne contenant des données impliquées dans une relation de clé étrangère.
Aucune action : Un message d'erreur indique à l'utilisateur que la mise à jour n'est
pas autorisée et la commande UPDATE est annulée.
Cascade : Mets à jour toutes les lignes contenant des données qui interviennent dans
la relation de clé étrangère.
Définir Null : définis la valeur null si toutes les colonnes clés étrangères de la table
peuvent accepter des valeurs null.
Définir la valeur par défaut : définis la valeur par défaut définie pour la colonne si
toutes les colonnes clés étrangères de la table ont des valeurs par défaut définies.
57