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.

Était-ce utile?

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)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top