আমার আমার এসকিউএল সার্ভার ডাটাবেসে একটি কনফিগারেশন টেবিল রয়েছে এবং এই টেবিলটির কেবল কখনও এক সারি থাকা উচিত। ভবিষ্যতের বিকাশকারীদের এটি বুঝতে সহায়তা করতে আমি একাধিক সারির ডেটা যুক্ত হওয়া রোধ করতে চাই। আমি নীচের মত এটির জন্য একটি ট্রিগার ব্যবহার করা বেছে নিয়েছি ...
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
এটি কোনও ত্রুটি ছুঁড়ে না তবে প্রথম সারিতে প্রবেশ করতে দিচ্ছে না।
এছাড়াও সারণীর সংখ্যা সীমাবদ্ধ করার আরও কার্যকর / আরও বেশি স্ব-ব্যাখ্যা করার উপায় আছে যেটি কেবলমাত্র 1 এ সারণিতে সন্নিবেশ করা যায়? আমি কি এসকিউএল সার্ভার বৈশিষ্ট্যটি অন্তর্নিহিত করছি?