web-dev-qa-db-fra.com

Comment insérer des valeurs par défaut dans une table SQL?

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?

59

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.

67
aroth

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)
129
gbn

Le meilleur moyen est:

insert your_table
default values
25
inon

Essayez comme ça

INSERT INTO table1 (field1, field3) VALUES (5,10)

Alors field2 et field4 devraient avoir des valeurs par défaut.

5
fkerber

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)
3
Oded

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
1
Biddut

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.

0
Beatles1692