Problème de requête : Valeurs NULL et par défaut

Problème de requête : Valeurs NULL et par défaut - SQL/NoSQL - Programmation

Marsh Posté le 04-05-2006 à 19:17:48    

Bonjour, j'ai réalisé une application Web ASP/SQL Server
En voulant déployer cette application sur un autre serveur, j'ai eu quelques difficultés pour transférer et déployer la copie de ma base de données d'orgine (dont je n'ai plus accès).

 

Tout a été pratiquement réglé, je rencontre toutefois un problème qui est probablement (très) simple
Une requête d'insertion, associé avec un trigger agissant sur la colonne Notes de la table Infos
(L'update + trigger sur des données saisis manuellement sur SQL Server fonctionne bien)

 

Mon application web ASP me fournit le message
"Impossible d'insérer la valeur NULL dans la colonne 'Notes', table 'Infos'.
Cette colonne n'accepte pas les valeurs NULL
INSERT a échoué"

 

Si mes souvenirs sont bons, dans ma base de données d'origine, la valeur par défaut pour la colonne 'Notes' était 0. Je suppose que si par défaut 0 était attribué, le problème serait réglé.
Toutefois, je n'arrive pas à trouver la syntaxe SQL pour attribuer la valeur 0 par défaut (ALTER TABLE ??????)

 

Merci de votre aide

Reply

Marsh Posté le 04-05-2006 à 19:17:48   

Reply

Marsh Posté le 04-05-2006 à 19:26:02    

The_VeryNovice a écrit :

Bonjour, j'ai réalisé une application Web ASP/SQL Server
En voulant déployer cette application sur un autre serveur, j'ai eu quelques difficultés pour transférer et déployer la copie de ma base de données d'orgine (dont je n'ai plus accès).  
 
Tout a été pratiquement réglé, je rencontre toutefois un problème qui est probablement (très) simple  
Une requête d'insertion, associé avec un trigger agissant sur la colonne Notes de la table Infos
(L'update + trigger sur des données saisis manuellement sur SQL Server fonctionne bien)
 
Mon application web ASP me fournit le message
"Impossible d'insérer la valeur NULL dans la colonne 'Notes', table 'Infos'.  
Cette colonne n'accepte pas les valeurs NULL
INSERT a échoué"
 
Si mes souvenirs sont bons, dans ma base de données d'origine, la valeur par défaut pour la colonne 'Notes' était 0. Je suppose que si par défaut 0 était attribué, le problème serait réglé.
Toutefois, je n'arrive pas à trouver la syntaxe SQL pour attribuer la valeur 0 par défaut (ALTER TABLE ??????)
 
Merci de votre aide


Bonjour,
on ne peut pas modifier une colonne une fois qu'elle est crée mais tu peux faire un ALTER TABLE Infos DROP notes;  
et après ALTER TABLE Infos ADD notes NUMBER DEFAULT 0 ;  
mais dans ce cas là, tu perds les données déjà présentes.
Mais je pense que par défaut, notes doit être à 0. Le pb vient peut être de ton application.


Message édité par oggo le 04-05-2006 à 19:27:18
Reply

Marsh Posté le 04-05-2006 à 22:44:24    

On peut pas faire un ALTER TABLE Infos MODIFY notes DEFAULT 0 ou équivalent ?
 
Sinon passer par une table temporaire :
 
CREATE TABLE InfosTemp AS SELECT * FROM Infos;
 
TRUNCATE TABLE Infos;
 
ALTER TABLE Infos DROP notes;
 
ALTER TABLE Infos ADD notes ... DEFAULT 0;
 
INSERT INTO Infos SELECT * FROM InfosTemp;
 
DROP TABLE InfosTemp;

Reply

Marsh Posté le 04-05-2006 à 23:26:50    

En effet, je n'avais pas pensé à :
ALTER TABLE infos MODIFY notes NUMBER DEFAULT 0;

Reply

Marsh Posté le 05-05-2006 à 14:36:38    

mais si dans ton INSERT tu veux mettre null dans la colonne notes, ca te plantera aussi que ta colonne soit initialisée ou non par défaut.
 
là c'est une contrainte qui a été posée sur ta table à la création du genre :
CREATE infos
(notes NUMBER NOT NULL
...
)
...

Reply

Marsh Posté le 09-05-2006 à 21:41:10    

En récréant la table avec la valeur par défaut 0 puis en réinsérant les données, ça marche. Merci !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed