OVH Cloud OVH Cloud

Mise à jour à l'aide du parametre DEFAUT

2 réponses
Avatar
Jerome
Bonjour,

Je d=E9bute dans SQL et je voudrais savoir comment faire=20
pour que lorsque j'ins=E8re un nouvel enregistrement=20
(exemple NOM et PRENOM), pour que soit ins=E9rer=20
automatiquement dans le champs PHOTO le=20
chemin : "D:\IMAGES\nom.JPG" ou nom est le nom du nouvel=20
enregistrement.
Est-ce possible d'utiliser le param=E8tre DEFAUT ? J'ai=20
essay=E9 mais je ne peux mettre que l'arborescence=20
(D:\IMAGES\).
Sinon, utiliser un TRIGGER pour concat=E9ner le chemin + nom=20
+ jpg, mais comment faire ?
Merci de votre aide.

2 réponses

Avatar
Steve Kass
Jerome,

Une contrainte DEFAULT ne peut pas vous servir. Je suggère la
concatenation de "D:IMAGESnom.JPG" au moment de besoin:

create table T (
nom nvarchar(60),
PHOTO nvarchar(200) default null
)
go

insert into T(nom) values ('Jerome')
insert into T(nom,PHOTO) values ('Marie-Anne','D:IMAGESMarie-Anne002.JPG')
go

select nom, coalesce(PHOTO,'D:IMAGES'+nom+'.JPG') from T

go
drop table T

Si vous voulez que la PHOTO de Jerome soit toujours
'D:IMAGESJerome.JPG' après la modification
update T set nom = 'Richard' where nom = 'Jerome'
utilisez un déclencheur:

create trigger T_insert on T for insert as
update T set PHOTO = (
select 'D:IMAGES'+nom+'.JPG' from inserted
where inserted.nom = T.nom
)
where exists (
select * from inserted
where inserted.nom = T.nom
and inserted.PHOTO is null
)
go
[pas testé]

Steve Kass
Drew University


Jerome wrote:

Bonjour,

Je débute dans SQL et je voudrais savoir comment faire
pour que lorsque j'insère un nouvel enregistrement
(exemple NOM et PRENOM), pour que soit insérer
automatiquement dans le champs PHOTO le
chemin : "D:IMAGESnom.JPG" ou nom est le nom du nouvel
enregistrement.
Est-ce possible d'utiliser le paramètre DEFAUT ? J'ai
essayé mais je ne peux mettre que l'arborescence
(D:IMAGES).
Sinon, utiliser un TRIGGER pour concaténer le chemin + nom
+ jpg, mais comment faire ?
Merci de votre aide.




Avatar
Vuillermet Jacques
Je pense qu'il est préférable d'enregistrer le dossier de l'image à part
pour ne laisser que le nom du fichier dans la base (ou de quoi le
reconstruire).

Cela serait dommage qu'un déplacement de dossier implique un UPDATE.

Jacques.

"Jerome" a écrit dans le message de
news: 6b8301c48391$1c59f2d0$
Bonjour,

Je débute dans SQL et je voudrais savoir comment faire
pour que lorsque j'insère un nouvel enregistrement
(exemple NOM et PRENOM), pour que soit insérer
automatiquement dans le champs PHOTO le
chemin : "D:IMAGESnom.JPG" ou nom est le nom du nouvel
enregistrement.
Est-ce possible d'utiliser le paramètre DEFAUT ? J'ai
essayé mais je ne peux mettre que l'arborescence
(D:IMAGES).
Sinon, utiliser un TRIGGER pour concaténer le chemin + nom
+ jpg, mais comment faire ?
Merci de votre aide.