2013-11-20 12 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 है, यह उपयोगकर्ताओं के (नाम) होना चाहिए। जाँच extact वाक्य रचना – Santhosh

+0

@Santhosh: यह संदर्भ के साथ समस्या का हल। धन्यवाद! हालांकि, अब मुझे यह कहते हुए एक त्रुटि मिली है कि 'उपयोगकर्ता' तालिका में इस विदेशी कुंजी के लिए कोई मिलान करने वाले उम्मीदवार नहीं हैं। – 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 के प्राथमिक कुंजी संदर्भित होने चाहिए।

एसक्यूएल सर्वर में आप ऐसा कर सकता है:

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 से 'रिक्त नहीं' को दूर ....

नोट: मैं नहीं जानता कि के लिए नाम स्तंभ है क्या।

+0

हाँ, शायद 'नाम' का संदर्भ नहीं देना चाहिए। लेकिन अगर मुझे इसकी ज़रूरत है तो क्या होगा? मैं यह कैसे करुं? – 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 जांचना सुनिश्चित करें। मैं वहाँ में कोई गलती की थी और यह इस त्रुटि, जिससे उसे प्रति सहज है अगर आप मुझसे पूछें दे रहा था, लेकिन यह बात है।

संबंधित मुद्दे