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.
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
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.
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.
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.
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.
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" <anonymous@discussions.microsoft.com> a écrit dans le message de
news: 6b8301c48391$1c59f2d0$a501280a@phx.gbl...
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.
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.