J'ai 3 tables :=20
r=E9f=E9rence : id_ref, nom, etc
ligne : id_ligne, id_ref
colonne : id_colonne, id_ligne, texte...
Une r=E9f=E9rence contient plusieurs lignes, qui elles m=EAmes=20
sont constitu=E9es de 2 colonnes.
Jevoudrais faire qqc (dans ma proc=E9dure stock=E9e) du=20
genre :
=3D>Id de la r=E9f=E9rence pass=E9e en param=E8tre de la proc=20
stock=E9e
DELETE FROM reference, ligne, colonne
WHERE=20
reference.id=3D@Id
AND ligne.id_ref=3D@Id
AND colonne.id_ligne=3Dligne.id
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
François
Tu dois passer 3 ordres delete dans ta procédure stockée avec les bonnes clauses dans la clause where du delete. Par exemple : delete from ligne where id_ref in (select id_ref from reference where reference.id=@id). François.
"Seb" a écrit dans le message de news:f12d01c43d7f$2951bca0$ Bonjour,
J'ai 3 tables : référence : id_ref, nom, etc ligne : id_ligne, id_ref colonne : id_colonne, id_ligne, texte... Une référence contient plusieurs lignes, qui elles mêmes sont constituées de 2 colonnes. Jevoudrais faire qqc (dans ma procédure stockée) du genre : =>Id de la référence passée en paramètre de la proc stockée
DELETE FROM reference, ligne, colonne
WHERE reference.id=@Id AND ligne.id_ref=@Id AND colonne.id_ligne=ligne.id
Comment est-ce que je peux le mettre en place ?
Merci.
Seb
Tu dois passer 3 ordres delete dans ta procédure stockée avec les bonnes
clauses dans la clause where du delete. Par exemple : delete from ligne
where id_ref in (select id_ref from reference where reference.id=@id).
François.
"Seb" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:f12d01c43d7f$2951bca0$a501280a@phx.gbl...
Bonjour,
J'ai 3 tables :
référence : id_ref, nom, etc
ligne : id_ligne, id_ref
colonne : id_colonne, id_ligne, texte...
Une référence contient plusieurs lignes, qui elles mêmes
sont constituées de 2 colonnes.
Jevoudrais faire qqc (dans ma procédure stockée) du
genre :
=>Id de la référence passée en paramètre de la proc
stockée
DELETE FROM reference, ligne, colonne
WHERE
reference.id=@Id
AND ligne.id_ref=@Id
AND colonne.id_ligne=ligne.id
Tu dois passer 3 ordres delete dans ta procédure stockée avec les bonnes clauses dans la clause where du delete. Par exemple : delete from ligne where id_ref in (select id_ref from reference where reference.id=@id). François.
"Seb" a écrit dans le message de news:f12d01c43d7f$2951bca0$ Bonjour,
J'ai 3 tables : référence : id_ref, nom, etc ligne : id_ligne, id_ref colonne : id_colonne, id_ligne, texte... Une référence contient plusieurs lignes, qui elles mêmes sont constituées de 2 colonnes. Jevoudrais faire qqc (dans ma procédure stockée) du genre : =>Id de la référence passée en paramètre de la proc stockée
DELETE FROM reference, ligne, colonne
WHERE reference.id=@Id AND ligne.id_ref=@Id AND colonne.id_ligne=ligne.id
Comment est-ce que je peux le mettre en place ?
Merci.
Seb
Seb
Ok, je vais essayer comme ça, merci ! Je remettrai un post si ça ne marche pas...
Seb
-----Message d'origine----- Tu dois passer 3 ordres delete dans ta procédure stockée
avec les bonnes
clauses dans la clause where du delete. Par exemple :
delete from ligne
where id_ref in (select id_ref from reference where
reference.id=@id).
François.
"Seb" a écrit dans
le message de
news:f12d01c43d7f$2951bca0$ Bonjour,
J'ai 3 tables : référence : id_ref, nom, etc ligne : id_ligne, id_ref colonne : id_colonne, id_ligne, texte... Une référence contient plusieurs lignes, qui elles mêmes sont constituées de 2 colonnes. Jevoudrais faire qqc (dans ma procédure stockée) du genre : =>Id de la référence passée en paramètre de la proc stockée
DELETE FROM reference, ligne, colonne
WHERE reference.id=@Id AND ligne.id_ref=@Id AND colonne.id_ligne=ligne.id
Comment est-ce que je peux le mettre en place ?
Merci.
Seb
.
Ok, je vais essayer comme ça, merci !
Je remettrai un post si ça ne marche pas...
Seb
-----Message d'origine-----
Tu dois passer 3 ordres delete dans ta procédure stockée
avec les bonnes
clauses dans la clause where du delete. Par exemple :
delete from ligne
where id_ref in (select id_ref from reference where
reference.id=@id).
François.
"Seb" <anonymous@discussions.microsoft.com> a écrit dans
J'ai 3 tables :
référence : id_ref, nom, etc
ligne : id_ligne, id_ref
colonne : id_colonne, id_ligne, texte...
Une référence contient plusieurs lignes, qui elles mêmes
sont constituées de 2 colonnes.
Jevoudrais faire qqc (dans ma procédure stockée) du
genre :
=>Id de la référence passée en paramètre de la proc
stockée
DELETE FROM reference, ligne, colonne
WHERE
reference.id=@Id
AND ligne.id_ref=@Id
AND colonne.id_ligne=ligne.id
Ok, je vais essayer comme ça, merci ! Je remettrai un post si ça ne marche pas...
Seb
-----Message d'origine----- Tu dois passer 3 ordres delete dans ta procédure stockée
avec les bonnes
clauses dans la clause where du delete. Par exemple :
delete from ligne
where id_ref in (select id_ref from reference where
reference.id=@id).
François.
"Seb" a écrit dans
le message de
news:f12d01c43d7f$2951bca0$ Bonjour,
J'ai 3 tables : référence : id_ref, nom, etc ligne : id_ligne, id_ref colonne : id_colonne, id_ligne, texte... Une référence contient plusieurs lignes, qui elles mêmes sont constituées de 2 colonnes. Jevoudrais faire qqc (dans ma procédure stockée) du genre : =>Id de la référence passée en paramètre de la proc stockée
DELETE FROM reference, ligne, colonne
WHERE reference.id=@Id AND ligne.id_ref=@Id AND colonne.id_ligne=ligne.id
Comment est-ce que je peux le mettre en place ?
Merci.
Seb
.
Fred BROUARD
pour un exemple de trigger delete en cascade : http://sqlpro.developpez.com/TransactSQL/SQL_MSTransactSQL.html#5.4 Quatrième exemple
Cependant, depuis SQL Server 2000 il est possible de gérer l'intégrité référentiel en mode DELETE CASCADE, auquel cas il est inutile d'écrire le moindre trigger.
A lire : http://sqlpro.developpez.com/SQL_AZ_7b.html#SCHEMA732
A +
Seb a écrit:
Bonjour,
J'ai 3 tables : référence : id_ref, nom, etc ligne : id_ligne, id_ref colonne : id_colonne, id_ligne, texte... Une référence contient plusieurs lignes, qui elles mêmes sont constituées de 2 colonnes. Jevoudrais faire qqc (dans ma procédure stockée) du genre : =>Id de la référence passée en paramètre de la proc stockée
DELETE FROM reference, ligne, colonne
WHERE reference.id=@Id AND ligne.id_ref=@Id AND colonne.id_ligne=ligne.id
Comment est-ce que je peux le mettre en place ?
Merci.
Seb
-- Frédéric BROUARD, MVP MS SQL Server. Expert Langage SQL / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
pour un exemple de trigger delete en cascade :
http://sqlpro.developpez.com/TransactSQL/SQL_MSTransactSQL.html#5.4
Quatrième exemple
Cependant, depuis SQL Server 2000 il est possible de gérer l'intégrité référentiel en mode DELETE CASCADE, auquel cas il
est inutile d'écrire le moindre trigger.
A lire :
http://sqlpro.developpez.com/SQL_AZ_7b.html#SCHEMA732
A +
Seb a écrit:
Bonjour,
J'ai 3 tables :
référence : id_ref, nom, etc
ligne : id_ligne, id_ref
colonne : id_colonne, id_ligne, texte...
Une référence contient plusieurs lignes, qui elles mêmes
sont constituées de 2 colonnes.
Jevoudrais faire qqc (dans ma procédure stockée) du
genre :
=>Id de la référence passée en paramètre de la proc
stockée
DELETE FROM reference, ligne, colonne
WHERE
reference.id=@Id
AND ligne.id_ref=@Id
AND colonne.id_ligne=ligne.id
Comment est-ce que je peux le mettre en place ?
Merci.
Seb
--
Frédéric BROUARD, MVP MS SQL Server. Expert Langage SQL / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
pour un exemple de trigger delete en cascade : http://sqlpro.developpez.com/TransactSQL/SQL_MSTransactSQL.html#5.4 Quatrième exemple
Cependant, depuis SQL Server 2000 il est possible de gérer l'intégrité référentiel en mode DELETE CASCADE, auquel cas il est inutile d'écrire le moindre trigger.
A lire : http://sqlpro.developpez.com/SQL_AZ_7b.html#SCHEMA732
A +
Seb a écrit:
Bonjour,
J'ai 3 tables : référence : id_ref, nom, etc ligne : id_ligne, id_ref colonne : id_colonne, id_ligne, texte... Une référence contient plusieurs lignes, qui elles mêmes sont constituées de 2 colonnes. Jevoudrais faire qqc (dans ma procédure stockée) du genre : =>Id de la référence passée en paramètre de la proc stockée
DELETE FROM reference, ligne, colonne
WHERE reference.id=@Id AND ligne.id_ref=@Id AND colonne.id_ligne=ligne.id
Comment est-ce que je peux le mettre en place ?
Merci.
Seb
-- Frédéric BROUARD, MVP MS SQL Server. Expert Langage SQL / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
Seb
Merci pour votre aide. En fait, pour tout supprimer en cascade, c'est un peu plus complexe que ça parce que je dois aussi supprimer des images, dont le nom est stocké dans ma table cellule (le dernier maillon de mon delete cascade). Donc de toute façon je vaos être obligé d'utiliser des sous requêtes pour récupérer la liste de tous les noms à supprimer
Seb
-----Message d'origine----- pour un exemple de trigger delete en cascade : http://sqlpro.developpez.com/TransactSQL/SQL_MSTransactSQ
L.html#5.4
Quatrième exemple
Cependant, depuis SQL Server 2000 il est possible de
gérer l'intégrité référentiel en mode DELETE CASCADE, auquel cas il
est inutile d'écrire le moindre trigger.
A lire : http://sqlpro.developpez.com/SQL_AZ_7b.html#SCHEMA732
A +
Seb a écrit:
Bonjour,
J'ai 3 tables : référence : id_ref, nom, etc ligne : id_ligne, id_ref colonne : id_colonne, id_ligne, texte... Une référence contient plusieurs lignes, qui elles
mêmes
sont constituées de 2 colonnes. Jevoudrais faire qqc (dans ma procédure stockée) du genre : =>Id de la référence passée en paramètre de la proc stockée
DELETE FROM reference, ligne, colonne
WHERE reference.id=@Id AND ligne.id_ref=@Id AND colonne.id_ligne=ligne.id
Comment est-ce que je peux le mettre en place ?
Merci.
Seb
-- Frédéric BROUARD, MVP MS SQL Server. Expert Langage
SQL / Delphi / web
Livre SQL - col. Référence :
http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros :
http://sqlpro.developpez.com
************************ www.datasapiens.com
*************************
.
Merci pour votre aide.
En fait, pour tout supprimer en cascade, c'est un peu
plus complexe que ça parce que je dois aussi supprimer
des images, dont le nom est stocké dans ma table cellule
(le dernier maillon de mon delete cascade). Donc de
toute façon je vaos être obligé d'utiliser des sous
requêtes pour récupérer la liste de tous les noms à
supprimer
Seb
-----Message d'origine-----
pour un exemple de trigger delete en cascade :
http://sqlpro.developpez.com/TransactSQL/SQL_MSTransactSQ
L.html#5.4
Quatrième exemple
Cependant, depuis SQL Server 2000 il est possible de
gérer l'intégrité référentiel en mode DELETE CASCADE,
auquel cas il
est inutile d'écrire le moindre trigger.
A lire :
http://sqlpro.developpez.com/SQL_AZ_7b.html#SCHEMA732
A +
Seb a écrit:
Bonjour,
J'ai 3 tables :
référence : id_ref, nom, etc
ligne : id_ligne, id_ref
colonne : id_colonne, id_ligne, texte...
Une référence contient plusieurs lignes, qui elles
mêmes
sont constituées de 2 colonnes.
Jevoudrais faire qqc (dans ma procédure stockée) du
genre :
=>Id de la référence passée en paramètre de la proc
stockée
DELETE FROM reference, ligne, colonne
WHERE
reference.id=@Id
AND ligne.id_ref=@Id
AND colonne.id_ligne=ligne.id
Comment est-ce que je peux le mettre en place ?
Merci.
Seb
--
Frédéric BROUARD, MVP MS SQL Server. Expert Langage
Merci pour votre aide. En fait, pour tout supprimer en cascade, c'est un peu plus complexe que ça parce que je dois aussi supprimer des images, dont le nom est stocké dans ma table cellule (le dernier maillon de mon delete cascade). Donc de toute façon je vaos être obligé d'utiliser des sous requêtes pour récupérer la liste de tous les noms à supprimer
Seb
-----Message d'origine----- pour un exemple de trigger delete en cascade : http://sqlpro.developpez.com/TransactSQL/SQL_MSTransactSQ
L.html#5.4
Quatrième exemple
Cependant, depuis SQL Server 2000 il est possible de
gérer l'intégrité référentiel en mode DELETE CASCADE, auquel cas il
est inutile d'écrire le moindre trigger.
A lire : http://sqlpro.developpez.com/SQL_AZ_7b.html#SCHEMA732
A +
Seb a écrit:
Bonjour,
J'ai 3 tables : référence : id_ref, nom, etc ligne : id_ligne, id_ref colonne : id_colonne, id_ligne, texte... Une référence contient plusieurs lignes, qui elles
mêmes
sont constituées de 2 colonnes. Jevoudrais faire qqc (dans ma procédure stockée) du genre : =>Id de la référence passée en paramètre de la proc stockée
DELETE FROM reference, ligne, colonne
WHERE reference.id=@Id AND ligne.id_ref=@Id AND colonne.id_ligne=ligne.id
Comment est-ce que je peux le mettre en place ?
Merci.
Seb
-- Frédéric BROUARD, MVP MS SQL Server. Expert Langage
SQL / Delphi / web
Livre SQL - col. Référence :
http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros :
http://sqlpro.developpez.com
************************ www.datasapiens.com
*************************
.
Seb
Réflexion faite, je peux utiliser les 2 méthodes, non ? Je crée des liens sur mes tables pour pouvoir utiliser le on delete cascade, et pour récupérer les noms de mes images je me fais une super proc stockée qui me renverra le nom de toutes les images à supprimer... Mais comment on fait pour lier les tables sous sql server ?
Merci.
Seb
-----Message d'origine----- pour un exemple de trigger delete en cascade : http://sqlpro.developpez.com/TransactSQL/SQL_MSTransactSQ
L.html#5.4
Quatrième exemple
Cependant, depuis SQL Server 2000 il est possible de
gérer l'intégrité référentiel en mode DELETE CASCADE, auquel cas il
est inutile d'écrire le moindre trigger.
A lire : http://sqlpro.developpez.com/SQL_AZ_7b.html#SCHEMA732
A +
Seb a écrit:
Bonjour,
J'ai 3 tables : référence : id_ref, nom, etc ligne : id_ligne, id_ref colonne : id_colonne, id_ligne, texte... Une référence contient plusieurs lignes, qui elles
mêmes
sont constituées de 2 colonnes. Jevoudrais faire qqc (dans ma procédure stockée) du genre : =>Id de la référence passée en paramètre de la proc stockée
DELETE FROM reference, ligne, colonne
WHERE reference.id=@Id AND ligne.id_ref=@Id AND colonne.id_ligne=ligne.id
Comment est-ce que je peux le mettre en place ?
Merci.
Seb
-- Frédéric BROUARD, MVP MS SQL Server. Expert Langage
SQL / Delphi / web
Livre SQL - col. Référence :
http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros :
http://sqlpro.developpez.com
************************ www.datasapiens.com
*************************
.
Réflexion faite, je peux utiliser les 2 méthodes, non ?
Je crée des liens sur mes tables pour pouvoir utiliser le
on delete cascade, et pour récupérer les noms de mes
images je me fais une super proc stockée qui me renverra
le nom de toutes les images à supprimer...
Mais comment on fait pour lier les tables sous sql
server ?
Merci.
Seb
-----Message d'origine-----
pour un exemple de trigger delete en cascade :
http://sqlpro.developpez.com/TransactSQL/SQL_MSTransactSQ
L.html#5.4
Quatrième exemple
Cependant, depuis SQL Server 2000 il est possible de
gérer l'intégrité référentiel en mode DELETE CASCADE,
auquel cas il
est inutile d'écrire le moindre trigger.
A lire :
http://sqlpro.developpez.com/SQL_AZ_7b.html#SCHEMA732
A +
Seb a écrit:
Bonjour,
J'ai 3 tables :
référence : id_ref, nom, etc
ligne : id_ligne, id_ref
colonne : id_colonne, id_ligne, texte...
Une référence contient plusieurs lignes, qui elles
mêmes
sont constituées de 2 colonnes.
Jevoudrais faire qqc (dans ma procédure stockée) du
genre :
=>Id de la référence passée en paramètre de la proc
stockée
DELETE FROM reference, ligne, colonne
WHERE
reference.id=@Id
AND ligne.id_ref=@Id
AND colonne.id_ligne=ligne.id
Comment est-ce que je peux le mettre en place ?
Merci.
Seb
--
Frédéric BROUARD, MVP MS SQL Server. Expert Langage
Réflexion faite, je peux utiliser les 2 méthodes, non ? Je crée des liens sur mes tables pour pouvoir utiliser le on delete cascade, et pour récupérer les noms de mes images je me fais une super proc stockée qui me renverra le nom de toutes les images à supprimer... Mais comment on fait pour lier les tables sous sql server ?
Merci.
Seb
-----Message d'origine----- pour un exemple de trigger delete en cascade : http://sqlpro.developpez.com/TransactSQL/SQL_MSTransactSQ
L.html#5.4
Quatrième exemple
Cependant, depuis SQL Server 2000 il est possible de
gérer l'intégrité référentiel en mode DELETE CASCADE, auquel cas il
est inutile d'écrire le moindre trigger.
A lire : http://sqlpro.developpez.com/SQL_AZ_7b.html#SCHEMA732
A +
Seb a écrit:
Bonjour,
J'ai 3 tables : référence : id_ref, nom, etc ligne : id_ligne, id_ref colonne : id_colonne, id_ligne, texte... Une référence contient plusieurs lignes, qui elles
mêmes
sont constituées de 2 colonnes. Jevoudrais faire qqc (dans ma procédure stockée) du genre : =>Id de la référence passée en paramètre de la proc stockée
DELETE FROM reference, ligne, colonne
WHERE reference.id=@Id AND ligne.id_ref=@Id AND colonne.id_ligne=ligne.id
Comment est-ce que je peux le mettre en place ?
Merci.
Seb
-- Frédéric BROUARD, MVP MS SQL Server. Expert Langage