ramy nemer Ответов: 1

Могу ли я зарезервировать место для ID в SQL server и показать его при загрузке формы


<pre lang="C#">I have retrieved the last ID incremented by 1 into a textbox on form load, but is there a way to reserve a place in the table for this ID (that is retrieved), until form is saved?? Because there are multi users using this form and i need to get an ID once form is loaded, although form might take more time to be saved.
Am using c# for my application,i don't know if i have to implement this on my code application or in database itself.



Что я уже пробовал:

я только извлек последний идентификатор, увеличенный на 1, чтобы использовать этот идентификатор.

1 Ответов

Рейтинг:
2

OriginalGriff

Не.
Никогда, никогда не делайте этого: это приводит ко всевозможным ужасным проблемам с данными, которые просто кошмарно разбирать.
Когда вы" предварительно распределяете "значения идентификаторов, существует огромный риск того, что два разных пользователя попытаются использовать один и тот же идентификатор, а затем данные для них будут" смешаны " в БД. сортировка того, какие данные принадлежат к тому, что может занять целую вечность, особенно потому, что такие проблемы обычно не обнаруживаются сразу - и к тому времени, когда они обнаруживаются, огромные куски вашей БД превращаются в беспорядок, и никто не помнит, что должно быть там.
Выделяйте значения идентификаторов только тогда, когда вы храните информацию, и в этот момент позвольте БД сортировать ее с помощью столбца идентификаторов.


ramy nemer

идентификатор увеличивается на 1, поэтому дубликаты идентификаторов не допускаются, но есть способ сделать это

OriginalGriff

Он может быть увеличен, но *если он увеличивается на двух разных машинах*, они получают одно и то же значение... А если я сейчас увеличу его на своей машине, но пойду обедать, что будет на твоей? А если я пойду домой и выключу компьютер, какую ценность я получу завтра?
Поверьте мне: есть способы делать то, что вы хотите, но они слишком сложны и склонны к ошибкам. Вам не нужно заранее знать значение идентификатора: что бы кто-нибудь сделал с ним в реальном мире? Вас это волнует? Нет-это внутренняя деталь, которая им не нужна. Пусть БД позаботится об этом, когда вы вставляете данные. Это проще, безопаснее и намного эффективнее.

ramy nemer

да, это имеет смысл, но я работаю над этим, чтобы обеспечить безопасность и безопасность. Спасибо за ваш совет