我有两张桌子:
表1
c_ID float - PK
字段1
字段2
字段3
p_ID [uniqueidentifier]
和
表2
p_ID nvarchar
s_ID float
其中p_ID和s_ID都是主键的一部分。
我尝试在Table1上创建一个外键:
ALTER TABLE Table1
ADD CONSTRAINT FK_Table1_Table2 FOREIGN KEY (p_ID)
REFERENCES Table2(p_ID)
我收到了一个错误:
引用的表中没有主键或候选键 ' dbo.Table2'与外键中的引用列列表匹配 ' FK_Table1_Table2'
我是否收到此错误,因为p_ID
的数据类型是uniqueidentifier,而Table2 p_ID
中的数据类型是nvarchar?有解决方法吗?
答案 0 :(得分:1)
您只需使用包含PK
中相同列的FKcreate table ParentTest (
SomeNumber int,
Name varchar(25),
PRIMARY KEY (SomeNumber, Name)
)
create table ChildTest (
SomeValue varchar(25),
SomeNumber int,
Name varchar(25),
FOREIGN KEY (SomeNumber, Name) references ParentTest (SomeNumber, Name)
)