Bonjour
J'ai une table qui contient un champ numérique qui s'autoincrémente.
J'aimerai que chaque premier janvier que le champ se réinitialiser. Comment
peut faire cela?
Merci d'avance
--
=================================
MOD
modiop@hotmail.com
http://modiop.ifrance.com
=================================
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
bruno reiter [MVP]
en utilisant un job qui fera un DBCC CHECKIDENT reseed, mais attention aux doublons
br
"MOD" wrote in message news:
Bonjour J'ai une table qui contient un champ numérique qui s'autoincrémente. J'aimerai que chaque premier janvier que le champ se réinitialiser. Comment peut faire cela?
en utilisant un job qui fera un DBCC CHECKIDENT reseed, mais attention aux
doublons
br
"MOD" <modiop@ifrance.com> wrote in message
news:OBZFWk6nDHA.2404@TK2MSFTNGP12.phx.gbl...
Bonjour
J'ai une table qui contient un champ numérique qui s'autoincrémente.
J'aimerai que chaque premier janvier que le champ se réinitialiser. Comment
peut faire cela?
Merci d'avance
--
================================ > MOD
modiop@hotmail.com
http://modiop.ifrance.com
================================ >
en utilisant un job qui fera un DBCC CHECKIDENT reseed, mais attention aux doublons
br
"MOD" wrote in message news:
Bonjour J'ai une table qui contient un champ numérique qui s'autoincrémente. J'aimerai que chaque premier janvier que le champ se réinitialiser. Comment peut faire cela?
Oui pour les doublons je pensais à mettre l'année devant par exemple 200300001, 200300002 etc.
"bruno reiter [MVP]" a écrit dans le message de news:
en utilisant un job qui fera un DBCC CHECKIDENT reseed, mais attention aux doublons
br
"MOD" wrote in message news: > Bonjour > J'ai une table qui contient un champ numérique qui s'autoincrémente. > J'aimerai que chaque premier janvier que le champ se réinitialiser.
Comment
> peut faire cela? > > Merci d'avance > > -- > > ================================ > > MOD > > http://modiop.ifrance.com > ================================ > > >
Oui pour les doublons je pensais à mettre l'année devant par exemple
200300001, 200300002 etc.
"bruno reiter [MVP]" <remove.this.br33@bol.com.br> a écrit dans le message
de news:uDclOZ7nDHA.2528@TK2MSFTNGP12.phx.gbl...
en utilisant un job qui fera un DBCC CHECKIDENT reseed, mais attention aux
doublons
br
"MOD" <modiop@ifrance.com> wrote in message
news:OBZFWk6nDHA.2404@TK2MSFTNGP12.phx.gbl...
> Bonjour
> J'ai une table qui contient un champ numérique qui s'autoincrémente.
> J'aimerai que chaque premier janvier que le champ se réinitialiser.
Comment
> peut faire cela?
>
> Merci d'avance
>
> --
>
> ================================ > > MOD
> modiop@hotmail.com
> http://modiop.ifrance.com
> ================================ > >
>
Oui pour les doublons je pensais à mettre l'année devant par exemple 200300001, 200300002 etc.
"bruno reiter [MVP]" a écrit dans le message de news:
en utilisant un job qui fera un DBCC CHECKIDENT reseed, mais attention aux doublons
br
"MOD" wrote in message news: > Bonjour > J'ai une table qui contient un champ numérique qui s'autoincrémente. > J'aimerai que chaque premier janvier que le champ se réinitialiser.
Comment
> peut faire cela? > > Merci d'avance > > -- > > ================================ > > MOD > > http://modiop.ifrance.com > ================================ > > >
Fred BROUARD
C'est la pire des choses à faire...
Quelques principes de base des SGBDR
1) Ne jamais mélanger les données dans une seule et même colonne.... et la c'est un mélange de l'année + un numéro.
2) si tu as 100000 commandes tu passera à l'année suivante... Bien sûr tu n'auras jamais 100000 commandes... promis juré... et si la boite en rachetais une autres et que l'on repasse toutes les commandes de l'autres dans ta compta ???
3) c'est de l'info redondante si tu stocke la date !
la solution : calculer cette colonne d'après l'incrément vrai et l'année de la date. Du style :
SELECT CAST(DATEPART(YEAR, ColonneDate) AS CHAR(4)) + id - (SELECT MIN(id) FROM MaTable WHERE DATEPART(YEAR, ColonneDate) DATEPART(T.YEAR, ColonneDate)) + 1 AS Code FROM Matable T
Le tout pouvant être simplifié dans une fonction !
A +
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / 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 ****************** mailto: ******************
MOD a écrit:
Oui pour les doublons je pensais à mettre l'année devant par exemple 200300001, 200300002 etc.
"bruno reiter [MVP]" a écrit dans le message de news:
en utilisant un job qui fera un DBCC CHECKIDENT reseed, mais attention aux doublons
br
"MOD" wrote in message news:
Bonjour J'ai une table qui contient un champ numérique qui s'autoincrémente. J'aimerai que chaque premier janvier que le champ se réinitialiser.
1) Ne jamais mélanger les données dans une seule et même colonne....
et la c'est un mélange de l'année + un numéro.
2) si tu as 100000 commandes tu passera à l'année suivante...
Bien sûr tu n'auras jamais 100000 commandes... promis juré... et si la
boite en rachetais une autres et que l'on repasse toutes les commandes
de l'autres dans ta compta ???
3) c'est de l'info redondante si tu stocke la date !
la solution : calculer cette colonne d'après l'incrément vrai et l'année
de la date.
Du style :
SELECT CAST(DATEPART(YEAR, ColonneDate) AS CHAR(4))
+ id - (SELECT MIN(id)
FROM MaTable
WHERE DATEPART(YEAR, ColonneDate) DATEPART(T.YEAR, ColonneDate)) + 1 AS Code
FROM Matable T
Le tout pouvant être simplifié dans une fonction !
A +
--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / 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
****************** mailto:brouardf@club-internet.fr ******************
MOD a écrit:
Oui pour les doublons je pensais à mettre l'année devant par exemple
200300001, 200300002 etc.
"bruno reiter [MVP]" <remove.this.br33@bol.com.br> a écrit dans le message
de news:uDclOZ7nDHA.2528@TK2MSFTNGP12.phx.gbl...
en utilisant un job qui fera un DBCC CHECKIDENT reseed, mais attention aux
doublons
br
"MOD" <modiop@ifrance.com> wrote in message
news:OBZFWk6nDHA.2404@TK2MSFTNGP12.phx.gbl...
Bonjour
J'ai une table qui contient un champ numérique qui s'autoincrémente.
J'aimerai que chaque premier janvier que le champ se réinitialiser.
1) Ne jamais mélanger les données dans une seule et même colonne.... et la c'est un mélange de l'année + un numéro.
2) si tu as 100000 commandes tu passera à l'année suivante... Bien sûr tu n'auras jamais 100000 commandes... promis juré... et si la boite en rachetais une autres et que l'on repasse toutes les commandes de l'autres dans ta compta ???
3) c'est de l'info redondante si tu stocke la date !
la solution : calculer cette colonne d'après l'incrément vrai et l'année de la date. Du style :
SELECT CAST(DATEPART(YEAR, ColonneDate) AS CHAR(4)) + id - (SELECT MIN(id) FROM MaTable WHERE DATEPART(YEAR, ColonneDate) DATEPART(T.YEAR, ColonneDate)) + 1 AS Code FROM Matable T
Le tout pouvant être simplifié dans une fonction !
A +
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / 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 ****************** mailto: ******************
MOD a écrit:
Oui pour les doublons je pensais à mettre l'année devant par exemple 200300001, 200300002 etc.
"bruno reiter [MVP]" a écrit dans le message de news:
en utilisant un job qui fera un DBCC CHECKIDENT reseed, mais attention aux doublons
br
"MOD" wrote in message news:
Bonjour J'ai une table qui contient un champ numérique qui s'autoincrémente. J'aimerai que chaque premier janvier que le champ se réinitialiser.