Tôi đang cố gắng tạo mối quan hệ giữa hai bảng trong đó một cột trong BẢNG A là khóa ngoại cho một cột trong BẢNG B. Tuy nhiên, có một hàng trong BẢNG B hiện không có giá trị trong cột đó và nó gây ra lỗi cho tôi . Tuy nhiên, từ việc giải quyết vấn đề, sự đồng thuận chung dường như là null là một giá trị chấp nhận được trong trường khóa ngoại. Nhưng tôi vẫn không thể tạo mối quan hệ này trong SSMS do thông báo lỗi. Làm thế nào tôi có thể bỏ qua điều này?
Lỗi:
Unable to create relationship 'FK_RELATIONSHIP'.
The ALTER TABLE statement conflicted with the FOREIGN KEY
constraint "FK_RELATIONSHIP". The conflict occurred in database "DATABASE",
table "TABLE A", column 'COLUMN 1'.
Mã SQL theo yêu cầu:
USE [DATABASE]
GO
/****** Object: Table [dbo].[TABLEA] Script Date: 10/02/2012 17:44:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TABLEA](
[COLUMN1] [nvarchar](4) NOT NULL,
CONSTRAINT [PK_TABLEA] PRIMARY KEY CLUSTERED
(
[COLUMN1] 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
/****** Object: Table [dbo].[TABLEB] Script Date: 10/02/2012 17:44:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TABLEB](
[COLUMN1] [nvarchar](15) NOT NULL,
[COLUMN2] [nvarchar](4) NULL,
CONSTRAINT [PK_TABLEB] PRIMARY KEY CLUSTERED
(
[COLUMN1] 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
Cảm ơn
NULL
bạn đang thấy thực sự là null và không phải là nội dung của nvarchar?
NULL
được cho phép trong trường khóa ngoại: sqlfiddle.com/#!3/ab003 . Tuy nhiên, nếu bạn sử dụng chuỗi 'NULL'
làm giá trị, tôi sẽ tạo ra thông báo lỗi tương tự mà bạn đang nhận: sqlfiddle.com/#!3/ab003 . Nếu bạn muốn tiến thêm một bước này, hãy cài đặt Gói công cụ SSMS và sử dụng trình hướng dẫn Tạo tập lệnh chèn để tạo SQL cho nội dung chính xác của các bảng và chỉnh sửa nó vào bài đăng của bạn. Bạn cũng có thể sử dụng tùy chọn "Tạo tập lệnh thay đổi" để bao gồm SQL cho fk_relationship được đề xuất của bạn.