pour ce faire, l'intégrité relationnelle - ne pas utiliser des déclencheurs comme ils sont toujours une vraie douleur à maintenir après (ils ont leur place, mais pas ici) Relation int l'égrité fera tout ce dont vous avez besoin. L'utilisation de l'intégrité relationnelle peut être assez élégante, mais ce que vous devez faire est légèrement contre-intuitif si facilement manqué.
Créez votre table principale, tblMain, avec une clé primaire numérique.Pour simplifier j'ai testé cela avec une table avec une colonne, intID, et je l'ai rempli avec les valeurs 0,1 et 2.
Ensuite, créez une deuxième table, tblGuard, avec une clé primaire numérique similaire. J'ai ajouté une ligne dans cette table, la valeur 1.
Maintenant le bit de logique inverse. Créer une clé étrangère sur la tblGuard tableau qui font référence à la table tblMain
ALTER TABLE [dbo].[tblGuard] ADD
CONSTRAINT [FK_tblGuard_tblMain] FOREIGN KEY
(
[intID]
) REFERENCES [dbo].[tblMain] (
[intID]
)
La contrainte fera en sorte que la ligne avec la valeur IntID 1 ne peut pas être supprimé de la table tblMain car la table tblGuard d'intégrité référentielle exige que la valeur 1 existe dans tblMain. Cela fonctionne avec des suppressions et tronque.
Pourquoi ne voulez-vous pas définir les autorisations d'utilisateur? – SLaks
Probablement pas une bonne réponse mais c'est une base de données avec un seul administrateur – Belliez