Pergunta

Eu tenho uma mesa com

GID
ID
DefaultA
DefaultB
DefaultC
DefaultD
DefaultE
DefaultF

Meu requisito é que sempre exista um registro no banco de dados.

No front -end, se o usuário final tentar atualizar seu OK, pois ele atualizará o registro existente. Mas, se ele tentar inserir um novo registro, devo detê -lo.

Foi útil?

Solução

Elimine toda a inserção, exclua permissões de todos os usuários ...

ou,

Adicione um gatilho que rejeita qualquer transação que tente excluir ou inserir um registro.

Create Trigger MyTableEnsureSingleRowTrigger 
On MyTable for Insert, Delete 
As Rollback Transaction

Outras dicas

Crie um campo de chave primária, digite TinyInt e defina a restrição para que o valor possa ser apenas "1" (OE você pode usar um índice exclusivo no campo). Defina o valor do campo como "1" para você um único registro. Então nenhum outro registro pode ser inserido.

Supondo que o GID seja a chave primária, aqui está o código SQL para adicionar a restrição à sua tabela existente:

ALTER TABLE dbo.address ADD CONSTRAINT
  single_record CHECK (GID = 1)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top