我有一个具有值列和TableName列的表。我正在尝试创建一个CHECK约束,以确保值列中的值存在于TableName中指定的表中。
我们不希望每个TableName都有不同的表,因为它们都需要绑定到一个表,并且TableName会有数千个不同的可能值。
任何想法如何做到这一点?
示例数据:
INSERT INTO [Propagation].[AgencyEntityBroadcast](
EntityID, AgencyID, ReferenceTableName, ReferenceTableSchemaName)
VALUES('DF298C2D-D960-4F32-A071-685CCAE9B573', '0BDFFBD6-5502-4392-B67D-86B477954186', 'AgencyVehicle', 'Resource')
所以我想确保[Resource]。[AgencyVehicle]表的主键列中存在值'DF298C2D-D960-4F32-A071-685CCAE9B573'。
答案 0 :(得分:0)
你不需要检查约束,你需要一个像这样的外键约束....
ALTER TABLE [Propagation].[AgencyEntityBroadcast]
ADD CONSTRAINT fk_EntityID FOREIGN KEY (EntityID)
REFERENCES [Resource].[AgencyVehicle](PK_Column_Name)