Bonjour,
J'ai une table OPERATION comprenants les champs:
OP_DATEDEBUT du type 01/01/2004 15:30
OP_PERSONELID
OP_CHAMP1
OP_CHAMP2
ETC...
Le principe est que chaque enregistrement represente une operation (facile).
Ou cela se corse c'est qu'une operation ne peut etre réalise par une seule
personne une seule fois par jour.
En faite les champs de ma clé primaire composé devraient etre:
OP_DATEDEBUT +OP_PERSONELID
seulement pour ma clé, le format de OP_DATEDEBUT devrait etre du type
JJ/MM/AAAA et moi j'ai JJ/MM/AAAA HH:MM.
comment doit-je faire pour stocker ma date sous le format JJ/MM/AAAA HH:MM.
mais obtenir une cle primaire du type JJ/MM/AAAA.
Peut etre faut il que je revoit le probleme sous un autre angle mais je sais
pas lequel.
Je vous remercie de l'aide que vous pourrez m'apporter.
Frederic
Bonjour,
J'ai une table OPERATION comprenants les champs:
OP_DATEDEBUT du type 01/01/2004 15:30
OP_PERSONELID
OP_CHAMP1
OP_CHAMP2
ETC...
Le principe est que chaque enregistrement represente une operation (facile).
Ou cela se corse c'est qu'une operation ne peut etre réalise par une seule
personne une seule fois par jour.
En faite les champs de ma clé primaire composé devraient etre:
OP_DATEDEBUT +OP_PERSONELID
seulement pour ma clé, le format de OP_DATEDEBUT devrait etre du type
JJ/MM/AAAA et moi j'ai JJ/MM/AAAA HH:MM.
comment doit-je faire pour stocker ma date sous le format JJ/MM/AAAA HH:MM.
mais obtenir une cle primaire du type JJ/MM/AAAA.
Peut etre faut il que je revoit le probleme sous un autre angle mais je sais
pas lequel.
Je vous remercie de l'aide que vous pourrez m'apporter.
Frederic
Bonjour,
J'ai une table OPERATION comprenants les champs:
OP_DATEDEBUT du type 01/01/2004 15:30
OP_PERSONELID
OP_CHAMP1
OP_CHAMP2
ETC...
Le principe est que chaque enregistrement represente une operation (facile).
Ou cela se corse c'est qu'une operation ne peut etre réalise par une seule
personne une seule fois par jour.
En faite les champs de ma clé primaire composé devraient etre:
OP_DATEDEBUT +OP_PERSONELID
seulement pour ma clé, le format de OP_DATEDEBUT devrait etre du type
JJ/MM/AAAA et moi j'ai JJ/MM/AAAA HH:MM.
comment doit-je faire pour stocker ma date sous le format JJ/MM/AAAA HH:MM.
mais obtenir une cle primaire du type JJ/MM/AAAA.
Peut etre faut il que je revoit le probleme sous un autre angle mais je sais
pas lequel.
Je vous remercie de l'aide que vous pourrez m'apporter.
Frederic
Bonjour,
J'ai une table OPERATION comprenants les champs:
OP_DATEDEBUT du type 01/01/2004 15:30
OP_PERSONELID
OP_CHAMP1
OP_CHAMP2
ETC...
Le principe est que chaque enregistrement represente une operation
(facile).
Ou cela se corse c'est qu'une operation ne peut etre réalise par une seule
personne une seule fois par jour.
En faite les champs de ma clé primaire composé devraient etre:
OP_DATEDEBUT +OP_PERSONELID
seulement pour ma clé, le format de OP_DATEDEBUT devrait etre du type
JJ/MM/AAAA et moi j'ai JJ/MM/AAAA HH:MM.
comment doit-je faire pour stocker ma date sous le format JJ/MM/AAAA
HH:MM. mais obtenir une cle primaire du type JJ/MM/AAAA.
Peut etre faut il que je revoit le probleme sous un autre angle mais je
sais pas lequel.
Je vous remercie de l'aide que vous pourrez m'apporter.
Frederic
Bonjour,
J'ai une table OPERATION comprenants les champs:
OP_DATEDEBUT du type 01/01/2004 15:30
OP_PERSONELID
OP_CHAMP1
OP_CHAMP2
ETC...
Le principe est que chaque enregistrement represente une operation
(facile).
Ou cela se corse c'est qu'une operation ne peut etre réalise par une seule
personne une seule fois par jour.
En faite les champs de ma clé primaire composé devraient etre:
OP_DATEDEBUT +OP_PERSONELID
seulement pour ma clé, le format de OP_DATEDEBUT devrait etre du type
JJ/MM/AAAA et moi j'ai JJ/MM/AAAA HH:MM.
comment doit-je faire pour stocker ma date sous le format JJ/MM/AAAA
HH:MM. mais obtenir une cle primaire du type JJ/MM/AAAA.
Peut etre faut il que je revoit le probleme sous un autre angle mais je
sais pas lequel.
Je vous remercie de l'aide que vous pourrez m'apporter.
Frederic
Bonjour,
J'ai une table OPERATION comprenants les champs:
OP_DATEDEBUT du type 01/01/2004 15:30
OP_PERSONELID
OP_CHAMP1
OP_CHAMP2
ETC...
Le principe est que chaque enregistrement represente une operation
(facile).
Ou cela se corse c'est qu'une operation ne peut etre réalise par une seule
personne une seule fois par jour.
En faite les champs de ma clé primaire composé devraient etre:
OP_DATEDEBUT +OP_PERSONELID
seulement pour ma clé, le format de OP_DATEDEBUT devrait etre du type
JJ/MM/AAAA et moi j'ai JJ/MM/AAAA HH:MM.
comment doit-je faire pour stocker ma date sous le format JJ/MM/AAAA
HH:MM. mais obtenir une cle primaire du type JJ/MM/AAAA.
Peut etre faut il que je revoit le probleme sous un autre angle mais je
sais pas lequel.
Je vous remercie de l'aide que vous pourrez m'apporter.
Frederic
1) mettre une clef primaire de type :
OP_ID INT NOT NULL IDENTITY PRIMARY KEY
2) placer une colonne calculée pour une date sans heure :
OP_DATE AS CONVERT(CHAR(10), OP_DATEDEBUT, 121),
3) ajouter une contrainte d'unicité sur DATE/PERS
CONSTRAINT CU_DATEPERS UNIQUE (OP_DATE, OP_PERSONELID)
A +
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************
Frederix a écrit:Bonjour,
J'ai une table OPERATION comprenants les champs:
OP_DATEDEBUT du type 01/01/2004 15:30
OP_PERSONELID
OP_CHAMP1
OP_CHAMP2
ETC...
Le principe est que chaque enregistrement represente une operation
(facile).
Ou cela se corse c'est qu'une operation ne peut etre réalise par une
seule personne une seule fois par jour.
En faite les champs de ma clé primaire composé devraient etre:
OP_DATEDEBUT +OP_PERSONELID
seulement pour ma clé, le format de OP_DATEDEBUT devrait etre du type
JJ/MM/AAAA et moi j'ai JJ/MM/AAAA HH:MM.
comment doit-je faire pour stocker ma date sous le format JJ/MM/AAAA
HH:MM. mais obtenir une cle primaire du type JJ/MM/AAAA.
Peut etre faut il que je revoit le probleme sous un autre angle mais je
sais pas lequel.
Je vous remercie de l'aide que vous pourrez m'apporter.
Frederic
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************
1) mettre une clef primaire de type :
OP_ID INT NOT NULL IDENTITY PRIMARY KEY
2) placer une colonne calculée pour une date sans heure :
OP_DATE AS CONVERT(CHAR(10), OP_DATEDEBUT, 121),
3) ajouter une contrainte d'unicité sur DATE/PERS
CONSTRAINT CU_DATEPERS UNIQUE (OP_DATE, OP_PERSONELID)
A +
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************
Frederix a écrit:
Bonjour,
J'ai une table OPERATION comprenants les champs:
OP_DATEDEBUT du type 01/01/2004 15:30
OP_PERSONELID
OP_CHAMP1
OP_CHAMP2
ETC...
Le principe est que chaque enregistrement represente une operation
(facile).
Ou cela se corse c'est qu'une operation ne peut etre réalise par une
seule personne une seule fois par jour.
En faite les champs de ma clé primaire composé devraient etre:
OP_DATEDEBUT +OP_PERSONELID
seulement pour ma clé, le format de OP_DATEDEBUT devrait etre du type
JJ/MM/AAAA et moi j'ai JJ/MM/AAAA HH:MM.
comment doit-je faire pour stocker ma date sous le format JJ/MM/AAAA
HH:MM. mais obtenir une cle primaire du type JJ/MM/AAAA.
Peut etre faut il que je revoit le probleme sous un autre angle mais je
sais pas lequel.
Je vous remercie de l'aide que vous pourrez m'apporter.
Frederic
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************
1) mettre une clef primaire de type :
OP_ID INT NOT NULL IDENTITY PRIMARY KEY
2) placer une colonne calculée pour une date sans heure :
OP_DATE AS CONVERT(CHAR(10), OP_DATEDEBUT, 121),
3) ajouter une contrainte d'unicité sur DATE/PERS
CONSTRAINT CU_DATEPERS UNIQUE (OP_DATE, OP_PERSONELID)
A +
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************
Frederix a écrit:Bonjour,
J'ai une table OPERATION comprenants les champs:
OP_DATEDEBUT du type 01/01/2004 15:30
OP_PERSONELID
OP_CHAMP1
OP_CHAMP2
ETC...
Le principe est que chaque enregistrement represente une operation
(facile).
Ou cela se corse c'est qu'une operation ne peut etre réalise par une
seule personne une seule fois par jour.
En faite les champs de ma clé primaire composé devraient etre:
OP_DATEDEBUT +OP_PERSONELID
seulement pour ma clé, le format de OP_DATEDEBUT devrait etre du type
JJ/MM/AAAA et moi j'ai JJ/MM/AAAA HH:MM.
comment doit-je faire pour stocker ma date sous le format JJ/MM/AAAA
HH:MM. mais obtenir une cle primaire du type JJ/MM/AAAA.
Peut etre faut il que je revoit le probleme sous un autre angle mais je
sais pas lequel.
Je vous remercie de l'aide que vous pourrez m'apporter.
Frederic
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************
Oula! Faudrait voir à pas trop abuser de la moquette... :-)
JN.
PS : On peut mettre pour ce genre de solutions le calcul directement dans la
contrainte, ça évite de créer une colonne supplémentaire (10 octets fois le
nombre d'enreg de la table...)
"Fred BROUARD" a écrit dans le message de news:1) mettre une clef primaire de type :
OP_ID INT NOT NULL IDENTITY PRIMARY KEY
2) placer une colonne calculée pour une date sans heure :
OP_DATE AS CONVERT(CHAR(10), OP_DATEDEBUT, 121),
3) ajouter une contrainte d'unicité sur DATE/PERS
CONSTRAINT CU_DATEPERS UNIQUE (OP_DATE, OP_PERSONELID)
A +
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************
Frederix a écrit:Bonjour,
J'ai une table OPERATION comprenants les champs:
OP_DATEDEBUT du type 01/01/2004 15:30
OP_PERSONELID
OP_CHAMP1
OP_CHAMP2
ETC...
Le principe est que chaque enregistrement represente une operation
(facile).
Ou cela se corse c'est qu'une operation ne peut etre réalise par une
seule personne une seule fois par jour.
En faite les champs de ma clé primaire composé devraient etre:
OP_DATEDEBUT +OP_PERSONELID
seulement pour ma clé, le format de OP_DATEDEBUT devrait etre du type
JJ/MM/AAAA et moi j'ai JJ/MM/AAAA HH:MM.
comment doit-je faire pour stocker ma date sous le format JJ/MM/AAAA
HH:MM. mais obtenir une cle primaire du type JJ/MM/AAAA.
Peut etre faut il que je revoit le probleme sous un autre angle mais je
sais pas lequel.
Je vous remercie de l'aide que vous pourrez m'apporter.
Frederic
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************
Oula! Faudrait voir à pas trop abuser de la moquette... :-)
JN.
PS : On peut mettre pour ce genre de solutions le calcul directement dans la
contrainte, ça évite de créer une colonne supplémentaire (10 octets fois le
nombre d'enreg de la table...)
"Fred BROUARD" <brouardf@club-internet.fr> a écrit dans le message de news:
OAxldSB4EHA.708@TK2MSFTNGP11.phx.gbl...
1) mettre une clef primaire de type :
OP_ID INT NOT NULL IDENTITY PRIMARY KEY
2) placer une colonne calculée pour une date sans heure :
OP_DATE AS CONVERT(CHAR(10), OP_DATEDEBUT, 121),
3) ajouter une contrainte d'unicité sur DATE/PERS
CONSTRAINT CU_DATEPERS UNIQUE (OP_DATE, OP_PERSONELID)
A +
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************
Frederix a écrit:
Bonjour,
J'ai une table OPERATION comprenants les champs:
OP_DATEDEBUT du type 01/01/2004 15:30
OP_PERSONELID
OP_CHAMP1
OP_CHAMP2
ETC...
Le principe est que chaque enregistrement represente une operation
(facile).
Ou cela se corse c'est qu'une operation ne peut etre réalise par une
seule personne une seule fois par jour.
En faite les champs de ma clé primaire composé devraient etre:
OP_DATEDEBUT +OP_PERSONELID
seulement pour ma clé, le format de OP_DATEDEBUT devrait etre du type
JJ/MM/AAAA et moi j'ai JJ/MM/AAAA HH:MM.
comment doit-je faire pour stocker ma date sous le format JJ/MM/AAAA
HH:MM. mais obtenir une cle primaire du type JJ/MM/AAAA.
Peut etre faut il que je revoit le probleme sous un autre angle mais je
sais pas lequel.
Je vous remercie de l'aide que vous pourrez m'apporter.
Frederic
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************
Oula! Faudrait voir à pas trop abuser de la moquette... :-)
JN.
PS : On peut mettre pour ce genre de solutions le calcul directement dans la
contrainte, ça évite de créer une colonne supplémentaire (10 octets fois le
nombre d'enreg de la table...)
"Fred BROUARD" a écrit dans le message de news:1) mettre une clef primaire de type :
OP_ID INT NOT NULL IDENTITY PRIMARY KEY
2) placer une colonne calculée pour une date sans heure :
OP_DATE AS CONVERT(CHAR(10), OP_DATEDEBUT, 121),
3) ajouter une contrainte d'unicité sur DATE/PERS
CONSTRAINT CU_DATEPERS UNIQUE (OP_DATE, OP_PERSONELID)
A +
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************
Frederix a écrit:Bonjour,
J'ai une table OPERATION comprenants les champs:
OP_DATEDEBUT du type 01/01/2004 15:30
OP_PERSONELID
OP_CHAMP1
OP_CHAMP2
ETC...
Le principe est que chaque enregistrement represente une operation
(facile).
Ou cela se corse c'est qu'une operation ne peut etre réalise par une
seule personne une seule fois par jour.
En faite les champs de ma clé primaire composé devraient etre:
OP_DATEDEBUT +OP_PERSONELID
seulement pour ma clé, le format de OP_DATEDEBUT devrait etre du type
JJ/MM/AAAA et moi j'ai JJ/MM/AAAA HH:MM.
comment doit-je faire pour stocker ma date sous le format JJ/MM/AAAA
HH:MM. mais obtenir une cle primaire du type JJ/MM/AAAA.
Peut etre faut il que je revoit le probleme sous un autre angle mais je
sais pas lequel.
Je vous remercie de l'aide que vous pourrez m'apporter.
Frederic
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************
Jean-Nicolas BERGER a écrit:Oula! Faudrait voir à pas trop abuser de la moquette... :-)
JN.
PS : On peut mettre pour ce genre de solutions le calcul directement dans
la contrainte, ça évite de créer une colonne supplémentaire (10 octets
fois le nombre d'enreg de la table...)
si tu es très riche c'est une bonne solution, car il te faudra des
processeurs hyper rapide pour faire les jointures sur 14 octets.
Alors qu'avec ma solution la jointure se fera sur 4 octets soit 32 bits,
c'est à dire le mot du processeur donc une seule passe.
Avec ta solution c'est 4 passes dans le proceesur pour chaque jointure
donc 4 à 5 fois moins rapide...
C'est donc à toi de voir si tu préfère économiser 4 octets par lignes soit
4 Mo de données si tu as un lillion de lignes, ou bien avoir des requêtes
qui durent 500 % de temps en plus inutilement.
A +
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************
"Fred BROUARD" a écrit dans le message de
news:1) mettre une clef primaire de type :
OP_ID INT NOT NULL IDENTITY PRIMARY KEY
2) placer une colonne calculée pour une date sans heure :
OP_DATE AS CONVERT(CHAR(10), OP_DATEDEBUT, 121),
3) ajouter une contrainte d'unicité sur DATE/PERS
CONSTRAINT CU_DATEPERS UNIQUE (OP_DATE, OP_PERSONELID)
A +
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************
Frederix a écrit:Bonjour,
J'ai une table OPERATION comprenants les champs:
OP_DATEDEBUT du type 01/01/2004 15:30
OP_PERSONELID
OP_CHAMP1
OP_CHAMP2
ETC...
Le principe est que chaque enregistrement represente une operation
(facile).
Ou cela se corse c'est qu'une operation ne peut etre réalise par une
seule personne une seule fois par jour.
En faite les champs de ma clé primaire composé devraient etre:
OP_DATEDEBUT +OP_PERSONELID
seulement pour ma clé, le format de OP_DATEDEBUT devrait etre du type
JJ/MM/AAAA et moi j'ai JJ/MM/AAAA HH:MM.
comment doit-je faire pour stocker ma date sous le format JJ/MM/AAAA
HH:MM. mais obtenir une cle primaire du type JJ/MM/AAAA.
Peut etre faut il que je revoit le probleme sous un autre angle mais je
sais pas lequel.
Je vous remercie de l'aide que vous pourrez m'apporter.
Frederic
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************
Jean-Nicolas BERGER a écrit:
Oula! Faudrait voir à pas trop abuser de la moquette... :-)
JN.
PS : On peut mettre pour ce genre de solutions le calcul directement dans
la contrainte, ça évite de créer une colonne supplémentaire (10 octets
fois le nombre d'enreg de la table...)
si tu es très riche c'est une bonne solution, car il te faudra des
processeurs hyper rapide pour faire les jointures sur 14 octets.
Alors qu'avec ma solution la jointure se fera sur 4 octets soit 32 bits,
c'est à dire le mot du processeur donc une seule passe.
Avec ta solution c'est 4 passes dans le proceesur pour chaque jointure
donc 4 à 5 fois moins rapide...
C'est donc à toi de voir si tu préfère économiser 4 octets par lignes soit
4 Mo de données si tu as un lillion de lignes, ou bien avoir des requêtes
qui durent 500 % de temps en plus inutilement.
A +
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************
"Fred BROUARD" <brouardf@club-internet.fr> a écrit dans le message de
news: OAxldSB4EHA.708@TK2MSFTNGP11.phx.gbl...
1) mettre une clef primaire de type :
OP_ID INT NOT NULL IDENTITY PRIMARY KEY
2) placer une colonne calculée pour une date sans heure :
OP_DATE AS CONVERT(CHAR(10), OP_DATEDEBUT, 121),
3) ajouter une contrainte d'unicité sur DATE/PERS
CONSTRAINT CU_DATEPERS UNIQUE (OP_DATE, OP_PERSONELID)
A +
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************
Frederix a écrit:
Bonjour,
J'ai une table OPERATION comprenants les champs:
OP_DATEDEBUT du type 01/01/2004 15:30
OP_PERSONELID
OP_CHAMP1
OP_CHAMP2
ETC...
Le principe est que chaque enregistrement represente une operation
(facile).
Ou cela se corse c'est qu'une operation ne peut etre réalise par une
seule personne une seule fois par jour.
En faite les champs de ma clé primaire composé devraient etre:
OP_DATEDEBUT +OP_PERSONELID
seulement pour ma clé, le format de OP_DATEDEBUT devrait etre du type
JJ/MM/AAAA et moi j'ai JJ/MM/AAAA HH:MM.
comment doit-je faire pour stocker ma date sous le format JJ/MM/AAAA
HH:MM. mais obtenir une cle primaire du type JJ/MM/AAAA.
Peut etre faut il que je revoit le probleme sous un autre angle mais je
sais pas lequel.
Je vous remercie de l'aide que vous pourrez m'apporter.
Frederic
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************
Jean-Nicolas BERGER a écrit:Oula! Faudrait voir à pas trop abuser de la moquette... :-)
JN.
PS : On peut mettre pour ce genre de solutions le calcul directement dans
la contrainte, ça évite de créer une colonne supplémentaire (10 octets
fois le nombre d'enreg de la table...)
si tu es très riche c'est une bonne solution, car il te faudra des
processeurs hyper rapide pour faire les jointures sur 14 octets.
Alors qu'avec ma solution la jointure se fera sur 4 octets soit 32 bits,
c'est à dire le mot du processeur donc une seule passe.
Avec ta solution c'est 4 passes dans le proceesur pour chaque jointure
donc 4 à 5 fois moins rapide...
C'est donc à toi de voir si tu préfère économiser 4 octets par lignes soit
4 Mo de données si tu as un lillion de lignes, ou bien avoir des requêtes
qui durent 500 % de temps en plus inutilement.
A +
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************
"Fred BROUARD" a écrit dans le message de
news:1) mettre une clef primaire de type :
OP_ID INT NOT NULL IDENTITY PRIMARY KEY
2) placer une colonne calculée pour une date sans heure :
OP_DATE AS CONVERT(CHAR(10), OP_DATEDEBUT, 121),
3) ajouter une contrainte d'unicité sur DATE/PERS
CONSTRAINT CU_DATEPERS UNIQUE (OP_DATE, OP_PERSONELID)
A +
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************
Frederix a écrit:Bonjour,
J'ai une table OPERATION comprenants les champs:
OP_DATEDEBUT du type 01/01/2004 15:30
OP_PERSONELID
OP_CHAMP1
OP_CHAMP2
ETC...
Le principe est que chaque enregistrement represente une operation
(facile).
Ou cela se corse c'est qu'une operation ne peut etre réalise par une
seule personne une seule fois par jour.
En faite les champs de ma clé primaire composé devraient etre:
OP_DATEDEBUT +OP_PERSONELID
seulement pour ma clé, le format de OP_DATEDEBUT devrait etre du type
JJ/MM/AAAA et moi j'ai JJ/MM/AAAA HH:MM.
comment doit-je faire pour stocker ma date sous le format JJ/MM/AAAA
HH:MM. mais obtenir une cle primaire du type JJ/MM/AAAA.
Peut etre faut il que je revoit le probleme sous un autre angle mais je
sais pas lequel.
Je vous remercie de l'aide que vous pourrez m'apporter.
Frederic
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 *************************