2013-11-20 29 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

データベースpls? – 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'を削除してください。

注:名前列はわかりません。

+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を確認してください。私はそこにタイプミスがあり、それはこのエラーを出していました。あなたが私に尋ねると直感的ではありませんが、それは事実です。

関連する問題