Sql server MS SQL server管理,编辑行时出错

Sql server MS SQL server管理,编辑行时出错,sql-server,Sql Server,刚创建了数据库,但在使用编辑UI插入一些行时,出现以下错误: No row was updated. The data in row 2 was not committed. Error Source : .Net SqlClient Data Provider. Error Message: The INSERT statement conflicted with the FOREIGK KEY constraint "FK_Utilisateur_Droit". The conflict o

刚创建了数据库,但在使用编辑UI插入一些行时,出现以下错误:

No row was updated.
The data in row 2 was not committed.
Error Source : .Net SqlClient Data Provider.
Error Message: The INSERT statement conflicted with the FOREIGK KEY constraint "FK_Utilisateur_Droit". The conflict occured in database "NewNDA", table "dbo.Droit", column 'idDroit'.
The satement has been terminated.
我的表Droit由以下部分组成:

idDroit (PK, int, not null)
DRT_libelle (varchar(50), not null)
DRT_visualisation (bit, not null)
DRT_modification (bit, not null)
DRT_suppression (bit, not null)
还有我的桌子,我们:

idUtilisateur (PK, FK, int, not null)
USR_Nom (varchar(50), not null)
USR_Prenom (varchar(50), not null)
USR_Fonction (varchar(50), not null)
idDroit (int, not null)
idEntreprise (int, not null)
CREATE TABLE [dbo].[Utilisateur](
    [idUtilisateur] [int] IDENTITY(1,1) NOT NULL,
    [USR_Nom] [varchar](50) NOT NULL,
    [USR_Prenom] [varchar](50) NOT NULL,
    [USR_Fonction] [varchar](50) NOT NULL,
    [idDroit] [int] NOT NULL,
    [idEntreprise] [int] NOT NULL,
 CONSTRAINT [PK_Utilisateur] PRIMARY KEY CLUSTERED 
(
    [idUtilisateur] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
你知道我的问题吗? 谢谢

编辑: 我的发言:

INSERT INTO Utilisateur(USR_Fonction, USR_Nom, USR_Prenom, idDroit, idEntreprise)
VALUES ('Test', 'Nom', 'Prenom', '2', '2')
返回:

Msg 547, Level 16, State 0, Line 1
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Utilisateur_Droit". The conflict occurred in database "NewNDA", table "dbo.Droit", column 'idDroit'.
The statement has been terminated.
使用人的脚本:

idUtilisateur (PK, FK, int, not null)
USR_Nom (varchar(50), not null)
USR_Prenom (varchar(50), not null)
USR_Fonction (varchar(50), not null)
idDroit (int, not null)
idEntreprise (int, not null)
CREATE TABLE [dbo].[Utilisateur](
    [idUtilisateur] [int] IDENTITY(1,1) NOT NULL,
    [USR_Nom] [varchar](50) NOT NULL,
    [USR_Prenom] [varchar](50) NOT NULL,
    [USR_Fonction] [varchar](50) NOT NULL,
    [idDroit] [int] NOT NULL,
    [idEntreprise] [int] NOT NULL,
 CONSTRAINT [PK_Utilisateur] PRIMARY KEY CLUSTERED 
(
    [idUtilisateur] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
所有权脚本:

CREATE TABLE [dbo].[Droit](
    [idDroit] [int] IDENTITY(1,1) NOT NULL,
    [DRT_libelle] [varchar](50) NOT NULL,
    [DRT_visualisation] [bit] NOT NULL,
    [DRT_modification] [bit] NOT NULL,
    [DRT_suppression] [bit] NOT NULL,
 CONSTRAINT [PK_Droit] PRIMARY KEY CLUSTERED 
(
    [idDroit] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

由于
utilizator
的主键也是外键(并且
notnull
),您必须向
idutilizator
列提供id值,该列也以
idDroit
的形式存在于
Droit
表中

编辑:
另外(由于
idduplicator
是您的主键),您不能在
Droit
中引用一行两次。

您需要确保您输入的idDroit存在于Droit表中。如果可以发布正在生成的insert语句。您使用的是什么UI软件?顺便说一句,使用GUI输入数据是个糟糕的主意。如果您正在查找数据,那么应该编写脚本,以便您可以在其他服务器上运行它,并将其放在它所属的源代码管理中。如果是其他数据,那么从数据库的角度来看,如果使用脚本,仍然可以更有效地执行。如果您有PK/Fk relationshiops,那么应该先构建脚本将数据输入父表。那你就不知道了;是的,idDroit是存在的,一个用户是用这个魔法创建的。我正在使用MS SQL server管理界面编辑我的表。请同时添加
FK\u usilisateur\u Droit
“用户是由magic创建的”?你能解释一下这种魔力吗?IDUtisateur也被认为是FK,因为它是企业表的FK。(这意味着用户属于一家公司):/Than您必须为企业表条目提供一个有效的id。是的,我为我的用户设置的标识是一个有效的id。最奇怪的是,我以前的条目有相同的错误,并且通过魔术解决了。我输入的前一个用户是:test,test,test,2,2,而我正在尝试的实际用户是:maxime,test,admin,2,2你不能输入同一个PK两次。我的PK设置为自动递增,我不输入。我编辑了我的帖子,向您展示了我的insert语句和返回的错误。