Ho una tabella di configurazione nel mio database SQL Server e questa tabella dovrebbe avere solo una riga. Per aiutare i futuri sviluppatori a capirlo, vorrei impedire l'aggiunta di più di una riga di dati. Ho scelto di utilizzare un trigger per questo, come di seguito ...
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
Questo non genera un errore ma non consente alla prima riga di entrare.
C'è anche un modo più efficace / più autoesplicativo di limitare il numero di righe che possono essere inserite in una tabella a solo 1, rispetto a questo? Mi manca qualche funzionalità di SQL Server integrata?