SQL Server外键约束-对(相同元组)
假设这两个表: tbl1SQL Server外键约束-对(相同元组),sql,sql-server,sql-server-2008,foreign-keys,constraints,Sql,Sql Server,Sql Server 2008,Foreign Keys,Constraints,假设这两个表: tbl1 ID name fkID1 fkID2 tbl2 ID pkID1 pkID2 无论何时将数据插入tbl1,我如何确保(fkID1,fkID2)在tbl2中以(pkID1,pkID2)的形式存在 我在创建约束时没有问题,因此fkID1必须存在,而fkID2必须存在,但我希望确保它们存在于同一行中 无论是通过SQL还是通过ManagementStudio创建它的指令,都将非常棒。您可以用逗号分隔要检查的列。只要确保它们是有序的 alter table tbl1 wit
ID
name
fkID1
fkID2
tbl2
ID
pkID1
pkID2
无论何时将数据插入tbl1
,我如何确保(fkID1,fkID2)
在tbl2
中以(pkID1,pkID2)
的形式存在
我在创建约束时没有问题,因此fkID1
必须存在,而fkID2
必须存在,但我希望确保它们存在于同一行中
无论是通过SQL还是通过ManagementStudio创建它的指令,都将非常棒。您可以用逗号分隔要检查的列。只要确保它们是有序的
alter table tbl1 with check
add constraint FK_tbl1_tbl2
foreign key (fkID1, fkID2)
references tbl2 (pkID1, pkID2)
可以用逗号分隔要检查的列。只要确保它们是有序的
alter table tbl1 with check
add constraint FK_tbl1_tbl2
foreign key (fkID1, fkID2)
references tbl2 (pkID1, pkID2)
关于这个问题,我有一个小问题:
pkID1
在tbl2中本身就是一个FK,pkID2
根本不是密钥。SQL返回引用的表中没有主键或候选键
。我能做些什么来解决这个问题?我可以将pkID1
和pkID2`作为tbl2中的PK吗?如果pkID1
是一个FK,那么现有的关系将如何运作呢?这里有一个新问题,非常相关:我有一个小问题需要解决:pkID1
在tbl2中是一个FK,而pkID2
根本不是一把钥匙。SQL返回引用的表中没有主键或候选键
。我能做些什么来解决这个问题?我可以将pkID1
和pkID2`作为tbl2中的PK吗?如果pkID1
是FK,那么现有关系将如何运作呢?可以说tbl3
?这里有一个新问题,非常相关: