INSERT语句与FOREIGN KEY冲突
本文关键字:KEY 冲突 FOREIGN 语句 INSERT | 更新日期: 2024-09-12 16:30:45
我从SQL Server得到此错误:
INSERT语句与FOREIGN KEY约束"FK"冲突。冲突发生在数据库"DATABASENAME"、表"table"、列"UserID"中。语句已终止。
这来自Visual Studio 2008:
无法将"System.object"类型的对象强制转换为"System.IConvertable"类型。
这就是我得到的
CREATE TABLE DATABASENAME.TABLE
(
UserID INT IDENTITY,
...
...
CONSTRAINT PK_Users PRIMARY KEY NONCLUSTERED (UserID),
) ON [PRIMARY]
GO
CREATE TABLE DATABASENAME.OTHERTABLE
(
...
...
ManagerUserID INT NOT NULL,
...
CONSTRAINT FK FOREIGN KEY (ManagerUserID) REFERENCES TABLE (UserID)
) ON [PRIMARY]
GO
存储过程为:
CREATE PROCEDURE STOREDPROCEDURENAME
(@ManagerUserID int,
...
...
)
AS
INSERT INTO OTHERTABLE(..., ManagerUserID, ...)
VALUES (..., @ManagerUserID, ...)
这来自c#
_projectID = Convert.ToInt32(SqlHelper.ExecuteScalar(
ConfigurationSettings.AppSettings[TimeWeb.Web.Global.CfgKeyConnString],
"STOREDPROCEDURENAME", ..., ..., _managerID, ...));
在这种情况下,当我在网页上添加数据时,我指的是用户,从方法中我得到了正确的UserID
。但后来发生了这种事。
因此,在表中,我当然添加了UserID
,但当我使存储过程在中工作时,会出现第一条消息。
无法意识到我的代码出了什么问题。谢谢大家。
For Your Store过程。
尝试
CREATE PROCEDURE STOREDPROCEDURENAME
(@ManagerUserID int,
...
...
)
AS
Begin
if exists(select * from DATABASENAME.TABLE where UserID=@ManagerUserID) --check if pk exists to the ref rable
begin
INSERT INTO OTHERTABLE(..., ManagerUserID, ...)
VALUES (..., @ManagerUserID, ...)
end
End