Вы можете использовать индексированное представление для этого
CREATE VIEW dbo.EnforceConstraint
WITH SCHEMABINDING
AS
SELECT CompanyID, Username
FROM dbo.Users u
JOIN dbo.Workers w ON w.WorkerID = u.WorkerID
GO
CREATE UNIQUE CLUSTERED INDEX ix ON dbo.EnforceConstraint(CompanyID, Username)
Существуют определенные опции SET
, которые необходимо включить для изменения базовых таблиц индексированных представлений, но если вы используете SQL Server 2005+, они включены по умолчанию.