Mam tabelę konfiguracji w mojej bazie danych SQL Server i ta tabela powinna mieć tylko jeden wiersz. Aby pomóc przyszłym programistom zrozumieć to, chciałbym zapobiec dodawaniu więcej niż jednego wiersza danych. Zdecydowałem się użyć do tego wyzwalacza, jak poniżej ...
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
Nie powoduje to błędu, ale nie pozwala wejść do pierwszego wiersza.
Czy istnieje też bardziej skuteczny / bardziej samoobjaśniający sposób ograniczenia liczby wierszy, które można wstawić do tabeli do 1, niż ten? Czy brakuje mi wbudowanej funkcji SQL Server?