Usar un índice filtrado único
En SQL Server 2008 o superior, simplemente puede usar un índice filtrado único
CREATE UNIQUE INDEX IX_TableName_FormID_isDefault
ON TableName(FormID)
WHERE isDefault = 1
Dónde está la mesa
CREATE TABLE TableName(
FormID INT NOT NULL,
isDefault BIT NOT NULL
)
Por ejemplo, si intenta insertar muchas filas con el mismo FormID y isDefault establecido en 1 tendrá este error:
No se puede insertar una fila de clave duplicada en el objeto 'dbo.TableName' con un índice único 'IX_TableName_FormID_isDefault'. El valor de la clave duplicada es (1).
Fuente:https://technet.microsoft.com/en-us/library/cc280372.aspx