Verificare se esiste solo singolo record
-
22-09-2019 - |
Domanda
Ho una tabella con
GID
ID
DefaultA
DefaultB
DefaultC
DefaultD
DefaultE
DefaultF
la mia richiesta è che ci dovrebbe sempre essere un record nel database sempre.
Alla fine anteriore, se l'utente finale tenta di aggiornare il suo ok dal momento che aggiornerà il record.But esistente se tenta di entrare in un nuovo record io devo smettere.
Soluzione
Eliminare tutte inserire, eliminare le autorizzazioni da tutti gli utenti ...
o
Aggiungi un trigger che esegue il rollback qualsiasi transazione che tenta di eliminare o inserire un record.
Create Trigger MyTableEnsureSingleRowTrigger
On MyTable for Insert, Delete
As Rollback Transaction
Altri suggerimenti
Crea un campo chiave primaria, tipo tinyint, e impostare il vincolo in modo che il valore può essere solo "1" (oe si potrebbe usare un indice univoco sul campo). Impostare il valore del campo a "1" per voi singolo record. Poi Nessun documento può essere inserito.
Supponendo GID è la chiave primaria, qui è il codice SQL per aggiungere il vincolo al vostro tavolo esistente:
ALTER TABLE dbo.address ADD CONSTRAINT
single_record CHECK (GID = 1)