2014-03-25 47 views
0
CREATE TABLE [dbo].[Book] (
    [Id]  INT   IDENTITY (1, 1) NOT NULL, 
    [Auhor] NVARCHAR (50) NOT NULL, 
    [Name] NVARCHAR (50) NOT NULL, 
    [Price] DECIMAL (18) NOT NULL, 
    [UserId] INT   NOT NULL, 

    FOREIGN KEY ([UserId]) REFERENCES [dbo].[UserProfile] ([UserId]) 
); 

CREATE TABLE [dbo].[UsedBook] (
    [Id]   INT   IDENTITY (1, 1) NOT NULL, 
    [BookId]  INT   NOT NULL, 
    [Email]  NCHAR (10) NULL, 
    [MobileNumber] VARCHAR (15) NULL, 

    PRIMARY KEY CLUSTERED ([Id] ASC), 
    FOREIGN KEY (BookID) REFERENCES [dbo].[Book]([Id]) 
); 

你能否给我UsedBook表中的外键命令的正确语法?因为每次我试图运行它,它都会给我错误正确的语法来声明外键

SQL71516 ::被引用的表'[dbo]。[Book]'不包含与外键中的引用列表匹配的主键或候选键。如果被引用的列是一个计算列,它应该被保留。

很遗憾,我的英语:)

+1

的错误消息是晶莹剔透有关的原因:你的表'书'没有你可以参考的**主键**! FK只能在表中引用PK(或者有时,根据您使用的具体数据库,它也可以引用唯一的约束)。你的语法很好 - 语义都是错误的.... –

回答

2

,让您的书籍表[Id]成一个主键:

[Id] INT IDENTITY (1, 1) NOT NULL PRIMARY KEY