|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2008 Messages : 29 ![]() |
Es-que il ya un exemple pour calculer une clé unique et composé a l'aide d'un trigger avant l'insertion des données
La structure de ma table ( tb_Rapport ) Rapport (IDRapport, Description) Ma clé (IDRapport) est simple de 8 chiffres 4 chiffres pour l'année en cours + 4 chiffres Numéro auto incrémenté de 1 a 9999, et chaque année est mise a un. Exemple clé générer 2010-9998 2010-9999 2011-0001 2011-0002 sans le '-' Merci d'avance |
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Robert LabrousseDéveloppeur décisionnel Inscription : février 2009 Messages : 79 ![]() |
Bonsoir,
Pourquoi ne pas utiliser comme clé un simple numéro auto incrément. Je pense que vous vous compliquez la vie. Structure de la table : IdRapport,Année,Description |
|
|
00
|
|
|
#3 | |
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 520 ![]() |
Citation:
Structure de la table : IdRapport,Année,Description, ts datetime (valeur par défaut : getdate() )
__________________
les règles du forum - mode d'emploi du forum Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) JE NE RÉPONDS PAS aux questions techniques par message privé. Écrire en français sur un forum est une marque minimale de respect. |
|
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2008 Messages : 29 ![]() |
Oui j'ai déjà pensé à cette solution, mais le problème est que les rapports sont
Ré-incrémente chaque année donc ont commence à compter de 1 chaque nouvelle année et je ne sais pas comment faire ca |
|
|
00
|
|
|
#5 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2008 Messages : 29 ![]() |
Ok j'ai dû improviser un petit peut, l'idée que je fixe le compteur a 4 chiffres n'été pas idéal donc voici mon code :
Code :
|
||
|
|
00
|
|
|
#6 | ||||||||||
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 954 ![]() |
Il suffit tout simplement d'implémenter une vue sur votre table comportant :
1) la colonne ANNEE en SMALLINT par exemple 2) la colonne incrémentée. La vue devant présenter la renumérotation par année. Exemple : la table : Code :
Code :
Code :
Code :
Code :
Si vous dépasser 5, pensez à caster la clef en BIGINT. A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
||||||||||
|
00
|
|
|
#7 | ||||||
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 669 ![]() |
Bonjour,
On peut aussi faire une table très simple : Code :
Code :
Code :
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
||||||
|
00
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2008 Messages : 29 ![]() |
Merci beaucoup
|
|
|
00
|
|
|
#9 | ||
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Aller une autre (si vous êtes en version 2005 ou plus) :
Code :
|
||
|
00
|
|
|
#10 | ||
![]() ![]() |
La même que mikedavem en plus court :
Code :
__________________
Email : http://scr.im/waldar |
||
|
00
|
Copyright © 2000-2012 - www.developpez.com