Verifique se existe apenas um único registro
-
22-09-2019 - |
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.
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)