bonjour
est ce que je peux créer une clé étrangère null dans une table créer en sql server ???
merci![]()
bonjour
est ce que je peux créer une clé étrangère null dans une table créer en sql server ???
merci![]()
Il suffit d'essayer :
Attention toutefois, vous ne pouvez avoir qu'une seule valeur nulle si vous avez une contrainte d'unicité sur la colonne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 create table dbo.t1 ( id1_t1 smallint identity(1,1) not null , id2_t1 smallint null , constraint pk_t1 primary key (id1_t1) , constraint uk_t1 unique (id2_t1) ); -- Command(s) completed successfully. insert into dbo.t1 (id2_t1) values (1); -- (1 row(s) affected) insert into dbo.t1 (id2_t1) values (2); -- (1 row(s) affected) insert into dbo.t1 (id2_t1) values (null); -- (1 row(s) affected) create table dbo.t2 ( id1_t2 smallint identity(1,1) not null , id2_t1 smallint null , constraint pk_t2 primary key (id1_t2) , constraint fk_t2_t1 foreign key (id2_t1) references dbo.t1 (id2_t1) ); -- Command(s) completed successfully. insert into dbo.t2 (id2_t1) values (1); -- (1 row(s) affected) insert into dbo.t2 (id2_t1) values (2); -- (1 row(s) affected) insert into dbo.t2 (id2_t1) values (null); -- (1 row(s) affected) insert into dbo.t2 (id2_t1) values (3); The INSERT statement conflicted with the FOREIGN KEY constraint "fk_t2_t1". The conflict occurred in database, table "dbo.t1", column 'id2_t1'. The statement has been terminated.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 insert into dbo.t1 (id2_t1) values (null); Violation of UNIQUE KEY constraint 'uk_t1'. Cannot insert duplicate key in object 'dbo.t1'. The duplicate key value is (<NULL>). The statement has been terminated.
La réponse est oui, c'est possible. Du moment que la clé primaire de la table mère a une valeur NULL.
merci, pour vous réponses
mais est ce que la clé primaire peut être NULL en sql???
Une clef primaire étant une des clefs unique non nulle de la table, la réponse est non.
???La réponse est oui, c'est possible. Du moment que la clé primaire de la table mère a une valeur NULL.
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Partager