sen*_*ett 9 t-sql constraints foreign-keys composite-key
我正在尝试创建复合外键关系/约束.所有表都是空的.我有这张桌子:
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]
Run Code Online (Sandbox Code Playgroud)
和这个表:
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]
Run Code Online (Sandbox Code Playgroud)
我想像这样链接他们:
alter table [ChemSampleValueEventLinkTest] add
constraint FK_ChemSampleValueEvent_ChemSampleValue_test
foreign key ([SampleNumber], [ResultGroupID], [ParameterID])
references ChemSampleValueTest ([SampleNumber], [ResultGroupID], [ParameterID])
Run Code Online (Sandbox Code Playgroud)
据我所知,所有列类型都是相同的,但它一直在说
引用表'ChemSampleValueTest'中没有主键或候选键与外键'FK_ChemSampleValueEvent_ChemSampleValue_test'中的引用列列表匹配.
我哪里错了?
Der*_*omm 15
看起来您需要按照它们在PK定义中出现的顺序来显示您的FK /引用列表.
这应该工作:
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])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9089 次 |
| 最近记录: |