J'ai une table comme celle-ci:
create table1 (field1 int,
field2 int default 5557,
field3 int default 1337,
field4 int default 1337)
Je veux insérer une ligne qui a les valeurs par défaut pour field2 et field4.
J'ai essayé insert into table1 values (5,null,10,null)
mais cela ne fonctionne pas et ISNULL(field2,default)
ne fonctionne pas non plus.
Comment puis-je dire à la base de données d'utiliser la valeur par défaut pour la colonne lorsque j'insère une ligne?
N'incluez tout simplement pas les colonnes pour lesquelles vous souhaitez utiliser la valeur par défaut dans votre instruction insert. Par exemple:
INSERT INTO table1 (field1, field3) VALUES (5, 10);
... prendra les valeurs par défaut pour field2
et field4
, et attribuez 5 à field1
et 10 à field3
.
Il est recommandé de répertorier vos colonnes afin d’être indépendantes des modifications apportées à la table (nouvelle colonne ou nouvel ordre de colonne, etc.).
insert into table1 (field1, field3) values (5,10)
Cependant, si vous ne voulez pas faire cela, utilisez le mot clé DEFAULT
insert into table1 values (5, DEFAULT, 10, DEFAULT)
Le meilleur moyen est:
insert your_table
default values
Essayez comme ça
INSERT INTO table1 (field1, field3) VALUES (5,10)
Alors field2 et field4 devraient avoir des valeurs par défaut.
Si vos colonnes ne doivent pas contenir de valeurs NULL
, vous devez définir les colonnes sous la forme NOT NULL
aussi, sinon le passé dans NULL
sera utilisé à la place de la valeur par défaut et ne produira pas d'erreur.
Si vous ne transmettez pas la valeur aucun à ces champs (ce qui vous oblige à spécifier les champs que vous faites voulez utiliser), les valeurs par défaut seront utilisées:
INSERT INTO
table1 (field1, field3)
VALUES (5,10)
Vous pouvez écrire de cette façon
GO
ALTER TABLE Table_name ADD
column_name decimal(18, 2) NOT NULL CONSTRAINT Constant_name DEFAULT 0
GO
ALTER TABLE Table_name SET (LOCK_ESCALATION = TABLE)
GO
COMMIT
Pour insérer les valeurs par défaut, vous devez leur omettre quelque chose comme ceci:
Insert into Table (Field2) values(5)
Tous les autres champs auront la valeur null ou leurs valeurs par défaut si elles ont été définies.