Tengo una tabla de configuración en mi base de datos de SQL Server y esta tabla solo debería tener una fila. Para ayudar a los futuros desarrolladores a comprender esto, me gustaría evitar que se agregue más de una fila de datos. He optado por usar un disparador para esto, como se muestra a continuación ...
ALTER TRIGGER OnlyOneConfigRow
ON [dbo].[Configuration]
INSTEAD OF INSERT
AS
BEGIN
DECLARE @HasZeroRows BIT;
SELECT @HasZeroRows = CASE
WHEN COUNT (Id) = 0 THEN 1
ELSE 0
END
FROM
[dbo].[Configuration];
IF EXISTS(SELECT [Id] FROM inserted) AND @HasZeroRows = 0
BEGIN
RAISERROR ('You should not add more than one row into the config table. ', 16, 1)
END
END
Esto no arroja un error pero no permite que entre la primera fila.
Además, ¿hay una forma más efectiva / más autoexplicativa de limitar el número de filas que se pueden insertar en una tabla a solo 1, que esto? ¿Me falta alguna función incorporada de SQL Server?