2013-06-12 2 views
0

У меня есть база данных sql-сервера с интерфейсом доступа ms.Принудительный ввод данных в порядке

Я хочу, чтобы данные вводились в определенную таблицу по порядку.

Например, я могу ввести id = 2 после добавления id = 1, и я могу добавить только id = 3 после добавления 2 и 1.

Каков наилучший способ обеспечить соблюдение этого? Мне нужно ограничение, добавленное к интерфейсу доступа, или мне нужно добавить триггер или аналогично таблице sql?

+0

Есть ли причина, по которой вы вручную присваиваете значения «id», а не используете столбец «IDENTITY»? Столбец «ИДЕНТИФИКАЦИЯ» с положительным значением приращения (слева на свои собственные устройства) выделяет идентификаторы в возрастающем (но не обязательно последовательном) порядке, за исключением случаев, когда вы явно «RESEED» столбец. –

ответ

0

Если вы хотите сделать это, сохраните этот идентификатор в качестве первичного ключа и установите его как identity (auto increment). Вам не нужно вставлять это значение. Вставьте остальные столбцы и этот идентификатор будет автоматически сохранен как 1,2 и так далее.

1

Я согласен с @ Vamsi Pamula, вы можете это сделать. Но, однако, если вы хотите сделать только то, что ищете, то:

Прежде всего, когда пользователь пытается ввести новую запись, отследите теперь новый идентификатор Date Предположим 10. И, первый запрос в базу данных для Макса ид перед тем, как:

Выберите IsNull (Max (ID), 0) от YourTable

Пусть выше запрос возвращал 8. Таким образом, 10 не должно быть разрешено. Теперь теперь проверяйте:

if (ReturnedValuefromAboveQry + 1 = NEWID) then 
    msgbox "Allowed." 
else 
    msgbox "Not Allowed." 
End If 
Смежные вопросы