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.

È stato utile?

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)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top