Insert dans une table avec 1 champ auto-incrément

Toutoune2176 Messages postés 3 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 18 mai 2009 - 15 mai 2009 à 18:45
gperuch Messages postés 40 Date d'inscription dimanche 18 janvier 2009 Statut Membre Dernière intervention 2 février 2012 - 7 juil. 2009 à 20:32
Bonjour,

J'ai une table Société avec un Id unique en auto-incrément, cela m'évite à avoir à le gérer par soft.
Cette table ne comprend rien d'autre, parce que j'ai une table Societe_Histo qui gére l'ensemble des champs de cette société avec une notion d'historique (même le nom peux changer, ca reste la même société)
Mon problème est, comment écrire l'insert dans la table Société, puisque le seul champ est en auto incrément (identity(1,1)) ?
Merci de votre aide

Je suis en SQL serveur 2005
A voir également:

8 réponses

gperuch Messages postés 40 Date d'inscription dimanche 18 janvier 2009 Statut Membre Dernière intervention 2 février 2012 1
18 mai 2009 à 16:39
Salut,
Il y a deux réponses qui me gonfle sur un forum:  la première c'est : "cherche sur google" et la deuxieme : "c'est pour quoi faire"

même si j'ai envie de te poser la 2eme mais je ne le ferais pas.

Pour ce qui est de la reponses j'ai essayé (car effectivement j'avais jamais testé ce genre de truc avant) et il se trouve qu'il n'est pas possible (a ma connaissance) d'inserer une ligne quant une table qui a uniquement un champs identity, ce qui est logique dans un sens.
si tu veux continuer dans ton idée, la seule chose que je peux te conseiller c'est de rajouter un champs bit (le plus legé) de de faire

insert into matable values (0)

Bonne chance

greg
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
18 mai 2009 à 18:28
Bonjour

Quel est l'interet d'une table avec une seule colonne ID ?

à quoi vous sert cette table, si elle ne contient aucune information ?
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
18 mai 2009 à 18:39
arfff

je n'avais pas vu la réponse de gperuch (laissé la fenetre ouverte longtemps :) )

si je demande "a quoi ca sert", c'est surtout qu'apparement il a un gros probleme de conception au niveau de sa base, et il y a peut etre moyen de faire mieux...

enfin moi ce que j'en dit, c'est pour en parler :)
0
Toutoune2176 Messages postés 3 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 18 mai 2009
18 mai 2009 à 18:58
Si justement, elle contient une information, un identifiant unique, généré par le serveur.


Ce qui me permet d'avoir un identifiant unique pour une "Société" utile pour les relations avec les autres tables de ma base. Et d'avoir une table "historique" avec (malheureusement) tous les champs succeptibles d'évoluer dans le temps (début et fin de validité de l'information) pour une même société.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
19 mai 2009 à 09:14
Ok, mais alors qu'est ce qui te permet de faire le lien entre une ID et une societe si ca n'est pas dans la meme table ?
0
gperuch Messages postés 40 Date d'inscription dimanche 18 janvier 2009 Statut Membre Dernière intervention 2 février 2012 1
19 mai 2009 à 09:58
bonne question!! .... mais c'est pas moi qui l'ai posé!!  :-)

en toute logique tu aurais du avoir une table de ce type:

table_societé :
  id_soc      int  en auto incrément (identity(1,1)),
  nom_soc  varchar(xxxx)
  etc...

et à chaque nouvelle sociétés l'identifiant est directement attaché à ta société. (plus facile à gérer)
C'est aussi un peu la base d'une conception de table :
 1 - un information
 2 - une ligne unique

Dans ta conception, il manque l'information.

Bon courage

greg
0
mahamourta Messages postés 85 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 2 septembre 2016
2 juil. 2009 à 20:56
bonsoir cher camarade
svp je n'arrive pas a inserer un champ autoincrement dans une base de donnee sql server.je suis sous une plate forme dotnet. merci d'avance pour votre aide.
0
gperuch Messages postés 40 Date d'inscription dimanche 18 janvier 2009 Statut Membre Dernière intervention 2 février 2012 1
7 juil. 2009 à 20:32
il serait préférable que tu fasses un autre post pour cette question.
mais pour info:
si tu as une table toto avec champ1,champ2et champ3
et que champ1 est auto-incrementable
tu ne peux pas faire insert into toto (champ1,champ2,champ3) values (5,'grege','sjklfdsj')
car champ1 est auto incrementable sql server decidera de la valeur à mettre, donc tu fais:
insert into toto (champ2,champ3) values ('grege','sjklfdsj')
bonne chance

greg
0
Rejoignez-nous