Bonjour,
Surtout n'essayez pas de comprendre mes raisons pour lesquelles j'en suis arriver là (à faire une table sans clé primaire). Le problème la suivante :
j'ai une table SQL "Erreur" sans clé primaire et toutes les colonnes sont non obligatoire:
nom : varchar(10);
type : varchar(10);
date : datetime ;
j'arrive à insérer manuellement:
op1;application;01/01/2009
op1;application;01/01/2009
op1;exécution;01/01/2009
mais quand j'essaie de le modifier manuellement :
op1;application;01/01/2009
op1;application;01/01/2009 => op1;application;01/01/2009 => Erreur (*)
op1;exécution;01/01/2009
(*) : les valeurs de la ligne mise à jour ne rendent pas la ligne unique ou modifient plusieurs lignes (2 lignes)
Etant donné que je n'ai pas mis de clé primaire, ca doit être une erreur de la deuxième hypothèse, mais dans ce cas, SQL serveur s'attend à ce que toutes les lignes d'une table soit unique malgré que l'on est pas demandé alors ? donc la ligne entière devient clé primaire par défaut. Je suis pas sûr d'être clair.
Connaissez vous les règles SQL Server sur ce point ?
Egalement, pour ce test je l'ai fait manuellement, mais en prodution, tout sera géré par des scripts. Et je me demande si cela va planter si je ne créé pas une nouvelle colonne avec une clé primaire.
Ah mince, je viens de remarquer qu'en créant cette table à la main depuis SQL server, on n'a plus le problème. Mais si on génère la table depuis un script ca pose problème.
Partager