Вам нужен триггер INSTEAD OF INSERT
, который проверяет # текущих строк.Если уже 50, вы выдадите ошибку, используя RAISERROR
.Если нет, вы просто insert
записываете.
Внимание! Впереди непроверенный код.Он может содержать опечатки или небольшие синтаксические ошибки.Код должен показать вам концепции.Настроить и настроить в соответствии с вашими потребностями соответственно.
Как это:
CREATE TRIGGER checktablelimit
ON yourtable
INSTEAD OF INSERT
AS
DECLARE @currentCount INT
SELECT @currentCount = COUNT(*)
FROM yourtabletolimit
IF @currentCount = 50
BEGIN
RAISERROR ('Table already has 50 records',
11,
1);
END
ELSE
BEGIN
INSERT INTO yourtable
(field1,
field2,
field3)
SELECT field1,
field2,
field3
FROM inserted
END
GO