sql-server – 添加sql表的唯一约束作为另一个sql表的外键引用
发布时间:2021-03-31 13:55:31 所属栏目:MsSql教程 来源:网络整理
导读:如何将sql表的唯一约束添加为sql server 2005中另一个sql表的外键引用 解决方法 为了添加FK约束(在子表中添加到父表),您必须向关系的父表列添加唯一约束. 所有其余的都是可选的或与FK无关: 不需要任何主键 儿童表柱中不需要唯一性 父表(在这种FK关系中)经
如何将sql表的唯一约束添加为sql server 2005中另一个sql表的外键引用 解决方法为了添加FK约束(在子表中添加到父表),您必须向关系的父表列添加唯一约束.所有其余的都是可选的或与FK无关: >不需要任何主键 父表(在这种FK关系中)经常被称为(包括SSMS)作为主键表,但PK不是必须的,父表中的唯一键/约束就足够了(因为PK是唯一的,它是唯一约束的特殊情况)父表). 从answer by Matt删除TableA和TableB,这对初学者来说很困惑, CREATE TABLE parentB--TableB ( PK1 INT NOT NULL,PK2 INT NOT NULL,--I would not have additional non-referenced data in parent table,--rather in child table --SomeData VARCHAR(1000),--CONSTRAINT PK_TableB PRIMARY KEY CLUSTERED (PK1,PK2) ) CREATE TABLE childA--TableA ( --PK INT,-- NOT NULL,FK1 INT-- NOT NULL,-- Or NULL,if you''d rather. FK2 INT --NOT NULL --,SomeData VARCHAR(1000) --CONSTRAINT PK_TableA PRIMARY KEY CLUSTERED (PK),--CONSTRAINT FK_TableA_FK1FK2 FOREIGN KEY (FK1,FK2) REFERENCES TableB (PK1,PK2),--CONSTRAINT Cons2cols UNIQUE(FK1,FK2) ) 现在,按顺序,添加FK ALTER TABLE childA ADD --constraint FK1_childA --this is optional,if one needs to add his own custom name FOREIGN KEY (FK1) REFERENCES parentB(PK1); 您应该首先在父表列中的相应引用列上创建唯一约束: ALTER TABLE parentB ADD --CONSTRAINT YourUniqueName --uncomment for adding your own name to constraint UNIQUE(PK1) 类似地为2列外键约束 ALTER TABLE parentB ADD --CONSTRAINT YourUniqueName --for adding your own name to unique constraint UNIQUE(PK1,PK2) ALTER TABLE childA ADD --constraint yourUniqueName --uncomment for adding your own name to FK constraint FOREIGN KEY (FK1,FK2) REFERENCES parentB(PK1,PK2); (编辑:开发网_开封站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |