Проверьте, существует ли только одна запись - PullRequest
1 голос
/ 24 февраля 2010

У меня есть таблица с

GID
ID
DefaultA
DefaultB
DefaultC
DefaultD
DefaultE
DefaultF

Мое требование состоит в том, чтобы в базе данных всегда была одна запись.

В интерфейсе пользователя, если конечный пользователь пытается обновить его нормально, так как он обновит существующую запись. Но если он пытается ввести новую запись, я должен остановить его.

Ответы [ 2 ]

2 голосов
/ 24 февраля 2010

Создайте поле первичного ключа, введите tinyint и установите ограничение так, чтобы значение могло быть только «1» (то есть вы можете использовать уникальный индекс для поля). Установите значение поля в «1» для отдельной записи. Тогда никакая другая запись не может быть введена.

Предполагая, что GID является первичным ключом, вот код sql для добавления ограничения к существующей таблице:

ALTER TABLE dbo.address ADD CONSTRAINT
  single_record CHECK (GID = 1)
1 голос
/ 24 февраля 2010

Устранить все вставки, удалить разрешения от всех пользователей ...

или

Добавить триггер, который откатывает любую транзакцию, которая пытается удалить или вставить запись.

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