0
SQL71516 ::被引用表'[dbo]。[MSTransaction]'不包含与外键中的引用列表匹配的主键或候选键。如果被引用的列是一个计算列,它应该被保留。不包含与引用匹配的主键或候选键
这是我收到的错误。任何解决方案下面是两个表的SQL代码:
CREATE TABLE [dbo].[MSOrderline]
(
[PurchaseID] NCHAR (200) NOT NULL,
[ProductID] NCHAR (200) NOT NULL,
[Quantity] INT NULL,
CONSTRAINT [DoubleMS_PK]
PRIMARY KEY CLUSTERED ([PurchaseID] ASC, [ProductID] ASC),
FOREIGN KEY ([PurchaseID]) REFERENCES [dbo].[MSTransaction] ([PurchaseID]),
FOREIGN KEY ([ProductID]) REFERENCES [dbo].[MSProducts] ([ProductID])
);
CREATE TABLE [dbo].[MSTransaction]
(
[TransactionID] NCHAR (200) NOT NULL,
[EmployeeID] NCHAR (200) NULL,
[CustomerID] NCHAR (200) NULL,
[PurchaseID] NCHAR (200) NOT NULL,
[Amount] INT NULL,
[TotalAmount] INT NULL,
[TimeOfSale] NCHAR (200) NULL,
[DiscountID] NCHAR (200) NULL,
PRIMARY KEY CLUSTERED ([TransactionID] ASC),
FOREIGN KEY ([DiscountID]) REFERENCES [dbo].[MSDiscount] ([DiscountID]),
FOREIGN KEY ([EmployeeID]) REFERENCES [dbo].[MSEmployee] ([EmployeeID]),
FOREIGN KEY ([CustomerID]) REFERENCES [dbo].[MSCustomer] ([CustomerID])
);
我知道这已经被问过,但既没有在我的情况下工作或我不能就工作到了我的情况。
长字符字段是主键这样一个坏主意。 –