2011-10-16 6 views
0

안녕하세요,INSERT 문은 해당 null이더라도 FOREIGN KEY 제약 조건과 충돌합니다.

나는 외부 키 값 (id)을 포함하는 테이블을 가지고 있습니다. 이 필드는 null이 될 수 있지만, 문제는 내가 널 (null)로 설정하면 나는 다음과 같은 예외가 있다는 것입니다 : 외래 키 제약

이유와 충돌

INSERT 문을?

USE [biss] 
GO 

/****** Object: Table [dbo].[VoucherCodes] Script Date: 10/16/2011 19:55:16 ******/ 
SET ANSI_NULLS ON 
GO 

SET QUOTED_IDENTIFIER ON 
GO 

CREATE TABLE [dbo].[VoucherCodes](
    [Id] [int] IDENTITY(1,1) NOT NULL, 
    [Code] [nvarchar](50) NOT NULL, 
    [StartDate] [datetime] NOT NULL, 
    [EndDate] [datetime] NOT NULL, 
    [InactivatedDate] [datetime] NULL, 
    [AdCategoryId] [int] NULL, 
CONSTRAINT [PK_VoucherCodes] PRIMARY KEY CLUSTERED 
(
    [Id] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 

GO 

ALTER TABLE [dbo].[VoucherCodes] WITH CHECK ADD 
    CONSTRAINT [FK_VoucherCodes_AdCategories] FOREIGN KEY([AdCategoryId]) 
    REFERENCES [dbo].[AdCategories] ([Id]) 
    ON UPDATE SET NULL 
GO 

ALTER TABLE [dbo].[VoucherCodes] CHECK CONSTRAINT [FK_VoucherCodes_AdCategories] 
GO 

ALTER TABLE [dbo].[VoucherCodes] WITH CHECK ADD 
    CONSTRAINT [FK_VoucherCodes_VoucherCodes] FOREIGN KEY([Id]) 
    REFERENCES [dbo].[VoucherCodes] ([Id]) 
GO 

ALTER TABLE [dbo].[VoucherCodes] CHECK CONSTRAINT [FK_VoucherCodes_VoucherCodes] 
GO 

ALTER TABLE [dbo].[VoucherCodes] WITH CHECK ADD 
    CONSTRAINT [FK_VoucherCodes_VoucherCodes1] FOREIGN KEY([Id]) 
    REFERENCES [dbo].[VoucherCodes] ([Id]) 
GO 

ALTER TABLE [dbo].[VoucherCodes] CHECK CONSTRAINT [FK_VoucherCodes_VoucherCodes1] 
GO 

ALTER TABLE [dbo].[VoucherCodes] ADD 
    CONSTRAINT [DF_VoucherCodes_Inactive] DEFAULT ((1)) FOR [InactivatedDate] 
GO 
+0

스키마 및 오류 메시지가 도움이 될 것입니다. – GriffinHeart

+0

테이블에 다른 외래 키가 없습니까? (단지 ... 확인) –

+0

실패한 코드는 무엇입니까? 전체 CREATE TABLE도 추가 할 수 있습니까 – gbn

답변

5

귀하의 외래 키가 원형 FK 제약 조건을 참조하는 두 개의 자체에서 온다 : 그것은

EDIT1 널 (NULL)입니다.

자신의 FK로 ID 열이 있습니다. INSERT 할 때 ID 열이 없으므로 실패합니다.

실행이

ALTER TABLE [dbo].[VoucherCodes] 
    DROP CONSTRAINT FK_VoucherCodes_VoucherCodes, FK_VoucherCodes_VoucherCodes1 
관련 문제