Saya memiliki tabel konfigurasi di database SQL Server saya dan tabel ini seharusnya hanya memiliki satu baris. Untuk membantu pengembang di masa depan memahami hal ini, saya ingin mencegah lebih dari satu baris data ditambahkan. Saya telah memilih untuk menggunakan pemicu untuk ini, seperti di bawah ini ...
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
Ini tidak menimbulkan kesalahan tetapi tidak mengizinkan baris pertama masuk.
Juga adakah cara yang lebih efektif / lebih menjelaskan diri sendiri untuk membatasi jumlah baris yang dapat dimasukkan ke dalam tabel menjadi hanya 1, daripada ini? Apakah saya kehilangan fitur SQL Server bawaan?