Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 1
Регистрация: 03.02.2020
Сообщений: 43

Автоматическое формирование значений для новых строк

26.03.2020, 10:20. Показов 1317. Ответов 11

Студворк — интернет-сервис помощи студентам
Здравствуйте, работаю на c# с sql server

У меня есть таблица с ПК id типа int, хотелось бы, чтобы при добавлении новых строк, строке этого столбца назначался уникальный порядковый номер и пользователь не назначал этот номер сам, а это делала бд. Также хочется реализовать это средствами sql server, но не знаю как.

Строки добавляются из формы на c# апдейтом, есть мысль чтобы при добавлении строки формировать значение в коде на основе количества строк таблицы +1, но это потребует доп обращение к бд
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.03.2020, 10:20
Ответы с готовыми решениями:

Калькулятор: Сделать автоматическое удаление предыдущего решения при вводе новых значений
имеем дело с калькулятором. после вычисления приходится вручную очищать textbox. подскажите, как сделать автоматическое удаление...

Создание новых строк по количеству значений в ячейке
как можно сделать так, что бы с одной ячейки, которая содержит номера телефонов сделать то количество ячеек (строк) сколько номеров...

Автоматическое формирование условия для запроса
Добрый день! Может кто-то мне (как говорит VinniPuh - бедному и безутешному) поможет. Можно ли с такого вот сформировать...

11
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
26.03.2020, 10:29
Необходимо в свойствах установить автоинкремент (Identity Increment). Пользователь вообще не должен редактировать и тем более назначать ключевые поля.

Добавлено через 2 минуты
И не плохо было бы написать, что за сервер sql
0
Эксперт .NET
 Аватар для Usaga
14314 / 9400 / 1355
Регистрация: 21.01.2016
Сообщений: 35,450
26.03.2020, 12:07
Asyasiza, за автоинкремент отвечает сама СУБД. Для этого первичный ключ должен быть создан с настройкой IDENTITY.

SQL
1
2
3
4
5
CREATE TABLE SomeTable
(
   Id INT NOT NULL IDENTITY PRIMARY KEY ,
   ... остальные колонки
)
Цитата Сообщение от Почтальон Посмотреть сообщение
что за сервер sql
SQL Server
2
0 / 0 / 1
Регистрация: 03.02.2020
Сообщений: 43
23.04.2020, 13:49  [ТС]
Спасибо, я попробовала, но возникла с этим проблема. Например, если я создаю записи в новой пустой таблице, то автоинкремент работает как надо, но если удалить строку и создать новую, то нумерация сбивается, и при создании новой строки инкрементируется не значение последней (например, 7 строки), а непонятно какое (после 7 идет 11 или другое). Можете подсказать, в чем проблема и как ее исправить?
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
23.04.2020, 13:53
Цитата Сообщение от Asyasiza Посмотреть сообщение
нумерация сбивается,
Задача PK - не нумерация строк, а уникальность его для каждой строки. Никого не волнует, есть там пропуски или нет.

PS
Твой вопрос задает каждый второй новичок (если не каждый первый). Если интересно, можно поискать по форуму
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
23.04.2020, 13:54
Цитата Сообщение от Asyasiza Посмотреть сообщение
Можете подсказать, в чем проблема и как ее исправить?
Потому что не нужно использовать такие поля в качестве счетчика записей
0
0 / 0 / 1
Регистрация: 03.02.2020
Сообщений: 43
23.04.2020, 14:17  [ТС]
Я понимаю, что первичный ключ обеспечивает только уникальность значений, и не утверждала обратного.
Здесь я спрашиваю, как мне обеспечить автоматическое формирование последовательных значений при создании новых записей и использовать пропущенные (удаленные) номера.

Добавлено через 3 минуты
А как вы предлагаете поступать?
У меня такая ситуация, есть список сотрудников, их 10 шт, у каждого свой уникальный последовательный номер (с 1 по 10). Удаляется одна строка (их становится 9), создается новая и там формируется не следующее число после 9, а, например, 11. И 10 использоваться дальше не будет. Лично меня напрягает этот пробел или это считается нормальным?
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
23.04.2020, 14:20
Цитата Сообщение от Asyasiza Посмотреть сообщение
Лично меня напрягает этот пробел или это считается нормальным?
Это нормально, и вы не должны использовать это поле, оно нужно для БД. У сотрудника должно быть свое поле, в котором хранится его табельный номер.
0
0 / 0 / 1
Регистрация: 03.02.2020
Сообщений: 43
23.04.2020, 14:40  [ТС]
Ладно, тогда как автоматически назначать табельный номер? Он тоже должен быть уникальным, последовательным и без пропусков, совсем как ПК, который я планировала использовать и для бд и для назначения идентификационного номера сотрудника, применяющегося для табеля и прочего учета.
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
23.04.2020, 15:04
Цитата Сообщение от Asyasiza Посмотреть сообщение
Ладно, тогда как автоматически назначать табельный номер?
Если должны быть по-порядку (что не есть хорошо), то сортируете по этой колонке, вытаскиваете последнюю запись, читаете идентификационный номер и увеличиваете его, сохраняете запись.
0
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
23.04.2020, 15:38
Asyasiza, в реальной жизни сотрудников не удаляют из БД. Есть дата принятия на работу и дата увольнения. Если нужно показать действующих сотрудников, берутся те, кто не уволен.
1
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
23.04.2020, 16:07
Цитата Сообщение от Asyasiza Посмотреть сообщение
Удаляется одна строка
Как правило, в учетных системах информация не удаляется, иначе в случае чего не сыскать концов. Просто каким-то образом помечается, актуальна это инфа в текущий момент или нет. Тогда можно получить действующую информацию на любой момент времени в прошлом (контролирующие органы типа налоговой, Банка России и др. очень любят запросы за прошлые периоды).
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.04.2020, 16:07
Помогаю со студенческими работами здесь

Формирование новых таблиц для каждой строки из одной таблицы по критерию
Здравствуйте! Задача в следующем: в Excel имеется одна таблица, в которой есть столбцы двух уровней - это различные варианты и подварианты....

Автоматическое формирование содержания для нескольких Word документов
при создании макроса у меня появляется Application.Templates( _ "C:\Users\alekseev\AppData\Roaming\Microsoft\Document Building...

Как сделать автоматическое формирование автоинкремент в Access для внешней таблицы в формате "хх_тектс"?
Используется Access 2016 MySql Таблицы расположены на MySql. Access используется как клиент. Таблицы с записями для MySql

Формирование источника строк для списка
Доброго времени суток всем! Есть вопрос по строке SQL (присвоение источника данных списку) запроса. Суть проста: почему-то запрос...

Создание формы для ввода новых значений и изменения старых в таблицах
Продолжаю изучать Access в режиме практики. Подскажите пожалуйста , как создать форму, с помощью которой можно добавлять новые данные в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru