SQL Server veritabanımda bir konfigürasyon tablosu var ve bu tablonun sadece bir satırı olmalı. Gelecekteki geliştiricilerin bunu anlamasına yardımcı olmak için birden fazla veri satırının eklenmesini önlemek istiyorum. Bunun için bir tetikleyici kullanmayı seçtim, aşağıdaki gibi ...
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
Bu bir hata atmaz, ancak ilk satırın girmesine izin vermez.
Ayrıca bir tabloya eklenebilecek sıra sayısını sadece 1 ile sınırlamanın daha etkili / daha öz açıklayıcı bir yolu var mı? Herhangi bir yerleşik SQL Server özelliğinde eksik miyim?