Я пытаюсь установить отношение внешнего ключа между таблицей Order_Items и таблицей Parts. Я хочу связать детали с продуктами в таблице Order_Items через внешний ключ. У меня нет проблем с другими таблицами.Проблема Настройка внешнего ключа
Вот как определяется таблица order_items:
CREATE TABLE [dbo].[Order_Items](
[order_id] [uniqueidentifier] NOT NULL,
[product_number] [varchar](50) NOT NULL,
[quantity_ordered] [int] NOT NULL,
[product_tested] [bit] NULL,
CONSTRAINT [PK_Order_Items] PRIMARY KEY CLUSTERED
(
[order_id] ASC,
[product_number] 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
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[Order_Items] WITH CHECK ADD CONSTRAINT [FK_Order_Items_Orders] FOREIGN KEY([order_id])
REFERENCES [dbo].[Orders] ([order_id])
GO
ALTER TABLE [dbo].[Order_Items] CHECK CONSTRAINT [FK_Order_Items_Orders]
и запасные части таблицы:
CREATE TABLE [dbo].[Parts](
[part_number] [varchar](50) NOT NULL,
[product_number] [varchar](50) NOT NULL,
[part_description] [varchar](max) NULL,
[part_tested] [bit] NULL,
CONSTRAINT [PK_Parts_1] PRIMARY KEY CLUSTERED
(
[part_number] ASC,
[product_number] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Я попытался установить ограничение уникальности на обеих product_number колонн, но я все еще получаю сообщение об ошибке в SQL Server 2005 Management Studio Express как:
"The columns in table 'Order_Items' do not match an existing primary key or UNIQUE constraint"
Этот оператор создает синтаксическую ошибку TSQL –
, поэтому имеет частичный идентификатор (INT IDENTITY) в частях, а затем, каков будет идентификатор связывания в таблице order_items? Я решил, что если бы у меня был номер product_number с самой частью, это логически связало бы эти два.Потому что продукты состоят из частей. Вы можете иметь много частей для одного продукта. – 2010-07-15 21:26:15
@Jose Basilio: thanks - Я пропустил один из многих «E» в ключе «REFERENCES» - исправлен. –