façon simple est de refuser tout supprimer qui vide la table
CREATE TRIGGER TRG_MyTable_D FOR DELETE
AS
IF NOT EXISTS (SELECT * FROM MyTable)
ROLLBACK TRAN
GO
Plus complexe, si vous faites cette suppression multirow qui vide la table?
DELETE FROM TABLE WHERE ID BETWEEN 2 AND 5
donc, repeupler au hasard de ce que vous venez de supprimer
CREATE TRIGGER TRG_MyTable_D FOR DELETE
AS
IF NOT EXISTS (SELECT * FROM MyTable)
INSERT mytable (col2, col2, ..., coln)
SELECT TOP 1 col2, col2, ..., coln FROM INSERTED --ORDER BY ??
GO
Cependant, l'exigence est un peu dangereux et vague. En anglais, OK, "toujours avoir au moins une ligne dans le tableau", mais en pratique "quelle rangée?"
Pouvez-vous préciser ce que vous voulez? Voulez-vous supprimer toutes les lignes de la table sauf une? Ou voulez-vous seulement supprimer la ligne où 'ID = 2' * à moins que * ce soit la seule ligne restante dans la table? – VoteyDisciple
Oui, comme vous l'avez dit, je peux supprimer toutes les lignes de la table sauf une. Mais excepté on peut ne pas être une valeur statique. La suggestion d'Andomar fonctionne bien. Merci pour ton intérêt. – Kerberos