Vérifiez si seulement existe seul enregistrement
-
22-09-2019 - |
Question
J'ai une table avec
GID
ID
DefaultA
DefaultB
DefaultC
DefaultD
DefaultE
DefaultF
mon exigence est qu'il y ait toujours un enregistrement dans la base de données toujours.
Dans l'avant si l'utilisateur final tente de mettre à jour son ok car il mettra à jour le record.But existant s'il essaie d'entrer un nouveau record, je dois l'arrêter.
La solution
Éliminer tous les insérer, supprimer les autorisations de tous les utilisateurs ...
ou
Ajoutez un déclencheur qui annule toute transaction qui tente de supprimer ou insérer un enregistrement.
Create Trigger MyTableEnsureSingleRowTrigger
On MyTable for Insert, Delete
As Rollback Transaction
Autres conseils
Créer un champ de clé primaire, le type tinyint, et définir la contrainte pour que la valeur ne peut être « 1 » (oe que vous pouvez utiliser un index unique sur le terrain). Réglez la valeur du champ à « 1 » pour vous seul enregistrement. Ensuite, aucun autre enregistrement peut être saisi.
Si l'on suppose GID est la clé primaire, voici le code SQL pour ajouter la contrainte à votre table existante:
ALTER TABLE dbo.address ADD CONSTRAINT
single_record CHECK (GID = 1)