Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2000 Forums
 SQL Server Development (2000)
 Why can't I insert a record?

Author  Topic 

label
Posting Yak Master

197 Posts

Posted - 2004-04-09 : 10:42:28
I've created 3 tables.

Projects, Tasks, RF_Task_User

When I go to insert a record into the RF_Task_User table it tells me it can't because


INSERT statement conflicted with COLUMN FOREIGN KEY constraint 'FK_RF_Task_User_Tasks'. The conflict occurred in database 'Projects', table 'Tasks', column 'TaskID'. The statement has been terminated.


My tables are here:


if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_RF_User_Project_Projects]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[RF_User_Project] DROP CONSTRAINT FK_RF_User_Project_Projects
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_Tasks_Projects]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[Tasks] DROP CONSTRAINT FK_Tasks_Projects
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_RF_Task_User_Tasks]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[RF_Task_User] DROP CONSTRAINT FK_RF_Task_User_Tasks
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Projects]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Projects]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[RF_Task_User]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[RF_Task_User]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Tasks]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Tasks]
GO

CREATE TABLE [dbo].[Projects] (
[ProjectID] [int] IDENTITY (1, 1) NOT NULL ,
[ProjectName] [varchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[ProjectAdded] [datetime] NULL ,
[ProjectUpdated] [datetime] NULL ,
[ProjectCompleted] [bit] NULL ,
[ProjectOwner] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[ProjectDue] [datetime] NULL ,
[ProjectPriority] [int] NULL ,
[ProjectGoal] [varchar] (500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[ProjectSummary] [varchar] (1000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[ProjectDescription] [varchar] (5000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[HasTasks] [bit] NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[RF_Task_User] (
[TaskID] [int] NULL ,
[UserID] [int] NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Tasks] (
[TaskID] [int] IDENTITY (1, 1) NOT NULL ,
[ProjectID] [int] NULL ,
[TaskName] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[TaskDescription] [varchar] (5000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[TaskAdded] [datetime] NULL ,
[TaskUpdated] [datetime] NULL ,
[TaskCompleted] [bit] NULL
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[Projects] WITH NOCHECK ADD
CONSTRAINT [PK_Projects] PRIMARY KEY CLUSTERED
(
[ProjectID]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[Tasks] WITH NOCHECK ADD
CONSTRAINT [PK_Tasks] PRIMARY KEY CLUSTERED
(
[TaskID]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[Projects] WITH NOCHECK ADD
CONSTRAINT [DF_Projects_ProjectCompleted] DEFAULT (0) FOR [ProjectCompleted]
GO

CREATE INDEX [IX_RF_Task_User] ON [dbo].[RF_Task_User]([TaskID]) ON [PRIMARY]
GO

ALTER TABLE [dbo].[Tasks] WITH NOCHECK ADD
CONSTRAINT [DF_Tasks_TaskCompleted] DEFAULT (0) FOR [TaskCompleted]
GO

CREATE INDEX [IX_Tasks] ON [dbo].[Tasks]([ProjectID]) ON [PRIMARY]
GO

ALTER TABLE [dbo].[RF_Task_User] ADD
CONSTRAINT [FK_RF_Task_User_Tasks] FOREIGN KEY
(
[TaskID]
) REFERENCES [dbo].[Tasks] (
[TaskID]
) ON DELETE CASCADE NOT FOR REPLICATION
GO

ALTER TABLE [dbo].[Tasks] ADD
CONSTRAINT [FK_Tasks_Projects] FOREIGN KEY
(
[ProjectID]
) REFERENCES [dbo].[Projects] (
[ProjectID]
) ON DELETE CASCADE NOT FOR REPLICATION
GO


What am I missing here?

nr
SQLTeam MVY

12543 Posts

Posted - 2004-04-09 : 10:45:33
ALTER TABLE [dbo].[RF_Task_User] ADD
CONSTRAINT [FK_RF_Task_User_Tasks] FOREIGN KEY
(
[TaskID]
) REFERENCES [dbo].[Tasks] (
[TaskID]
) ON DELETE CASCADE NOT FOR REPLICATION

Whenever you insert into RF_Task_User the TaskID must already exist in Tasks otherwise you will get your error.
If you thik the TaskID does exist then use the profiler to see what is really happenning.

==========================================
Cursors are useful if you don't know sql.
DTS can be used in a similar way.
Beer is not cold and it isn't fizzy.
Go to Top of Page
   

- Advertisement -