2010-02-24 5 views
1

У меня есть таблица сПроверьте, только одна запись существует

GID 
ID 
DefaultA 
DefaultB 
DefaultC 
DefaultD 
DefaultE 
DefaultF 

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

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

ответ

1

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

или

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

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

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

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

ALTER TABLE dbo.address ADD CONSTRAINT 
    single_record CHECK (GID = 1) 

 Смежные вопросы

  • Нет связанных вопросов^_^