SQL Server确保指定的表中存在一个值

时间:2014-02-21 15:22:37

标签: sql sql-server constraints

我有一个具有值列和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'。

1 个答案:

答案 0 :(得分:0)

你不需要检查约束,你需要一个像这样的外键约束....

ALTER TABLE [Propagation].[AgencyEntityBroadcast]
ADD CONSTRAINT fk_EntityID  FOREIGN KEY (EntityID)
REFERENCES [Resource].[AgencyVehicle](PK_Column_Name)