f_arab
شنبه 18 دی 1389, 00:26 صبح
با عرض سلام خدمت دوستان عزیز
دو جدول دارم که به هم مرتبط هستند و وقتی میخوام اطلاعات رو با دستور insert وارد جدولی کنم که دارای کلید خارجی هست با خطای زیر روبرو میشم:
Msg 547, Level 16, State 0, Line 1
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_tozi_software_software". The conflict occurred in database "it", table "dbo.software", column 'sname'.
The statement has been terminated.
این نکته رو هم بگم که من در فیلدی که کلید خارجی هست مقداری رو وارد می کنم که قبلا به عنوان کلید اصلی در جدول دیگه وارد شده ولی نمیدونم چرا خطا میده!!!!
اینم ساختار جداولمه:
USE [it]
GO
/****** Object: Table [dbo].[tozi_software] Script Date: 01/08/2011 00:29:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tozi_software](
[sname] [nvarchar](50) COLLATE Arabic_CI_AS NOT NULL,
[kcode] [nvarchar](15) COLLATE Arabic_CI_AS NOT NULL,
[srecdate] [nchar](10) COLLATE Arabic_CI_AS NULL,
[usetime] [nvarchar](30) COLLATE Arabic_CI_AS NULL,
[tsexplain] [nvarchar](max) COLLATE Arabic_CI_AS NULL,
CONSTRAINT [PK_tozi_software_1] PRIMARY KEY CLUSTERED
(
[sname] ASC,
[kcode] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
USE [it]
GO
ALTER TABLE [dbo].[tozi_software] WITH CHECK ADD CONSTRAINT [FK_tozi_software_karmand] FOREIGN KEY([kcode])
REFERENCES [dbo].[karmand] ([kcode])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[tozi_software] WITH CHECK ADD CONSTRAINT [FK_tozi_software_software] FOREIGN KEY([sname])
REFERENCES [dbo].[software] ([sname])
ON UPDATE CASCADE
ON DELETE CASCADE
USE [it]
GO
/****** Object: Table [dbo].[software] Script Date: 01/08/2011 00:51:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[software](
[sname] [nvarchar](50) COLLATE Arabic_CI_AS NOT NULL,
[goal] [nvarchar](50) COLLATE Arabic_CI_AS NULL,
[stype] [char](10) COLLATE Arabic_CI_AS NULL,
[unetwork] [nchar](5) COLLATE Arabic_CI_AS NULL,
[data_base] [nvarchar](50) COLLATE Arabic_CI_AS NULL,
[planguage] [nvarchar](50) COLLATE Arabic_CI_AS NULL,
[license] [smallint] NULL,
[memory] [nvarchar](20) COLLATE Arabic_CI_AS NULL,
[price] [money] NULL,
[usecondition] [nvarchar](10) COLLATE Arabic_CI_AS NULL,
[sseller] [nvarchar](50) COLLATE Arabic_CI_AS NULL,
[sbdate] [nchar](10) COLLATE Arabic_CI_AS NULL,
[exdate] [nchar](10) COLLATE Arabic_CI_AS NULL,
[sexplain] [nvarchar](max) COLLATE Arabic_CI_AS NULL,
CONSTRAINT [PK_software] PRIMARY KEY CLUSTERED
(
[sname] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
لطفا راهنمایی کنید چون خیلی مهمه:ناراحت:
ممنون
دو جدول دارم که به هم مرتبط هستند و وقتی میخوام اطلاعات رو با دستور insert وارد جدولی کنم که دارای کلید خارجی هست با خطای زیر روبرو میشم:
Msg 547, Level 16, State 0, Line 1
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_tozi_software_software". The conflict occurred in database "it", table "dbo.software", column 'sname'.
The statement has been terminated.
این نکته رو هم بگم که من در فیلدی که کلید خارجی هست مقداری رو وارد می کنم که قبلا به عنوان کلید اصلی در جدول دیگه وارد شده ولی نمیدونم چرا خطا میده!!!!
اینم ساختار جداولمه:
USE [it]
GO
/****** Object: Table [dbo].[tozi_software] Script Date: 01/08/2011 00:29:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tozi_software](
[sname] [nvarchar](50) COLLATE Arabic_CI_AS NOT NULL,
[kcode] [nvarchar](15) COLLATE Arabic_CI_AS NOT NULL,
[srecdate] [nchar](10) COLLATE Arabic_CI_AS NULL,
[usetime] [nvarchar](30) COLLATE Arabic_CI_AS NULL,
[tsexplain] [nvarchar](max) COLLATE Arabic_CI_AS NULL,
CONSTRAINT [PK_tozi_software_1] PRIMARY KEY CLUSTERED
(
[sname] ASC,
[kcode] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
USE [it]
GO
ALTER TABLE [dbo].[tozi_software] WITH CHECK ADD CONSTRAINT [FK_tozi_software_karmand] FOREIGN KEY([kcode])
REFERENCES [dbo].[karmand] ([kcode])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[tozi_software] WITH CHECK ADD CONSTRAINT [FK_tozi_software_software] FOREIGN KEY([sname])
REFERENCES [dbo].[software] ([sname])
ON UPDATE CASCADE
ON DELETE CASCADE
USE [it]
GO
/****** Object: Table [dbo].[software] Script Date: 01/08/2011 00:51:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[software](
[sname] [nvarchar](50) COLLATE Arabic_CI_AS NOT NULL,
[goal] [nvarchar](50) COLLATE Arabic_CI_AS NULL,
[stype] [char](10) COLLATE Arabic_CI_AS NULL,
[unetwork] [nchar](5) COLLATE Arabic_CI_AS NULL,
[data_base] [nvarchar](50) COLLATE Arabic_CI_AS NULL,
[planguage] [nvarchar](50) COLLATE Arabic_CI_AS NULL,
[license] [smallint] NULL,
[memory] [nvarchar](20) COLLATE Arabic_CI_AS NULL,
[price] [money] NULL,
[usecondition] [nvarchar](10) COLLATE Arabic_CI_AS NULL,
[sseller] [nvarchar](50) COLLATE Arabic_CI_AS NULL,
[sbdate] [nchar](10) COLLATE Arabic_CI_AS NULL,
[exdate] [nchar](10) COLLATE Arabic_CI_AS NULL,
[sexplain] [nvarchar](max) COLLATE Arabic_CI_AS NULL,
CONSTRAINT [PK_software] PRIMARY KEY CLUSTERED
(
[sname] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
لطفا راهنمایی کنید چون خیلی مهمه:ناراحت:
ممنون