2013-11-20 57 views
5

我有以下代碼:外鍵引用無效的表

create table test.dbo.Users 
(
    Id int identity(1,1) primary key, 
    Name varchar(36) not null 
) 

create table test.dbo.Number 
(
    Id int identity(1,1) primary key, 
    Number varchar(10) not null, 
    Name varchar(36) not null foreign key references Users.Name 
) 

外鍵拋出一個錯誤說Foreign key 'FK__Number__Name__1CF15040' references invalid table 'Users.Name'.

我做錯了什麼?

+3

我不認爲它是USERS.NAME,它應該是USERS(NAME)。檢查extact語法 – Santhosh

+0

@Santhosh:解決了參考問題。謝謝!雖然,現在我得到一個錯誤,說'Users'表中沒有匹配這個外鍵的候選人。 – ojek

+0

你的數據庫會要求嗎? – Santhosh

回答

3

請在此SQLfiddle環節看,Link

CREATE TABLE NUMBER(
    ID INT PRIMARY KEY, 
    NUMBER VARCHAR(10) NOT NULL, 
    NAME VARCHAR(36) NOT NULL REFERENCES USERS(NAME) 
); 
0

你應該引用test.dbo.users的主鍵。

在SQL Server中,你可以這樣做:

create table Number 
(
    Id int identity(1,1) primary key, 
    Number varchar(10) not null, 
    Name varchar(36) not null , 
    Id_FK int not null foreign key references Users(id) 
) 

在上面,你有2個表之間的強制性的關聯。如果你想擁有可選的關係,請從Id_Fk中刪除'not null'....

注意:我不知道什麼是Name列。

+0

是的,可能不應該引用'Name'。但是如果我需要那個?我該怎麼做? – ojek

1

外鍵必須引用一個主鍵在另一表

我會用下面的代碼

我希望它是有用的

use test 
create table test.dbo.Users 
(
    Id int identity(1,1) primary key, 
    Name varchar(36) not null 
) 

create table test.dbo.Number 
(
    Id int identity(1,1) primary key, 
    Number varchar(10) not null, 
    Users_Id int not null 

    constraint fk_Number_Users foreign key (Users_Id) 
       references Users(Id) 
       on update no action 
       on delete no action 
) 
0

對於100%肯定表的人確實存在,就像我一樣,請務必檢查web.config。我在那裏有一個輸入錯誤,它給出了這個錯誤,如果你問我,這是錯誤的,但事實就是如此。