2012-03-08 12 views
8

बनाना मैं एक समग्र विदेशी कुंजी संबंध/बाधा बनाने की कोशिश कर रहा हूं। सभी टेबल खाली हैं।समग्र विदेशी कुंजी बाधा

CREATE TABLE [dbo].[ChemSampleValueTest](
    [SampleNumber] [int] NOT NULL, 
    [ParameterID] [int] NOT NULL, 
    [Value] [numeric](18, 6) NOT NULL, 
    [Accuracy] [varchar](50) NULL, 
    [ResultGroupID] [int] NOT NULL, 
    [QAState] [nvarchar](32) NOT NULL, 
    CONSTRAINT [PK_SampleValueTest] PRIMARY KEY CLUSTERED 
    (
     [SampleNumber] ASC, 
     [ParameterID] ASC, 
     [ResultGroupID] ASC 
    ) 
) ON [PRIMARY] 

और इस तालिका:: मैं इस तालिका है

CREATE TABLE [dbo].[ChemSampleValueEventLinkTest](
    [Event] [int] NOT NULL, 
    [SampleNumber] [int] NOT NULL, 
    [ResultGroupID] [int] NOT NULL, 
    [ParameterID] [int] NOT NULL, 
    [QAState] [nvarchar](32) NULL 
) ON [PRIMARY] 

और मैं इस तरह उन्हें लिंक करना चाहते हैं: के रूप में मैं सभी कॉलम प्रकार बता सकते हैं

alter table [ChemSampleValueEventLinkTest] add 
    constraint FK_ChemSampleValueEvent_ChemSampleValue_test 
    foreign key ([SampleNumber], [ResultGroupID], [ParameterID]) 
    references ChemSampleValueTest ([SampleNumber], [ResultGroupID], [ParameterID]) 

जहां तक वही हैं, लेकिन यह

कहता रहता है

संदर्भित तालिका 'ChemSampleValueTest' में कोई प्राथमिक या उम्मीदवार कुंजी नहीं है जो विदेशी कुंजी 'FK_ChemSampleValueEvent_ChemSampleValue_test' में संदर्भ कॉलम सूची से मेल खाती है।

मैं गलत कहां जा रहा हूं?

+0

कुछ इसी तरह के आसपास बिंदीदार (ज्यादातर बाधा उल्लंघन के बारे में) सवाल कर रहे हैं, लेकिन मैं कुछ भी है कि मुझे मदद नहीं मिल सका। – sennett

उत्तर

15

ऐसा लगता है कि आपको अपनी एफके/संदर्भ सूची को उसी क्रम में पीके परिभाषा में दिखाई देने की आवश्यकता है।

यह काम करना चाहिए:

CREATE TABLE [dbo].[ChemSampleValueTest](
    [SampleNumber] [int] NOT NULL, 
    [ParameterID] [int] NOT NULL, 
    [Value] [numeric](18, 6) NOT NULL, 
    [Accuracy] [varchar](50) NULL, 
    [ResultGroupID] [int] NOT NULL, 
    [QAState] [nvarchar](32) NOT NULL, 
    CONSTRAINT [PK_SampleValueTest] PRIMARY KEY CLUSTERED 
    (
     [SampleNumber] ASC, 
     [ParameterID] ASC, 
     [ResultGroupID] ASC 
    ) 
) ON [PRIMARY] 

CREATE TABLE [dbo].[ChemSampleValueEventLinkTest](
    [Event] [int] NOT NULL, 
    [SampleNumber] [int] NOT NULL, 
    [ResultGroupID] [int] NOT NULL, 
    [ParameterID] [int] NOT NULL, 
    [QAState] [nvarchar](32) NULL 
) ON [PRIMARY] 

alter table [ChemSampleValueEventLinkTest] add 
    constraint FK_ChemSampleValueEvent_ChemSampleValue_test 
    foreign key ([SampleNumber], [ParameterID], [ResultGroupID]) 
    references ChemSampleValueTest ([SampleNumber], [ParameterID], [ResultGroupID]) 
+0

आप सही हैं। इसके बारे में सोचकर, यह समझ में आता है। समग्र विदेशी कुंजी। मन झुकाव, लेकिन समझने के लिए शुरू कर दिया। आपकी मदद साथी के लिए धन्यवाद। – sennett