С Новым годом! Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 100

пересчёт при удалении

16.03.2013, 00:47. Показов 4361. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
такой вот есть вопрос вазможно ли сделать так что бы при удалении строки из таблицы б.д.
оставшие порядковые номера строк были автоматически пересчитаны.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.03.2013, 00:47
Ответы с готовыми решениями:

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

Пересчет тИЦ и пересчет позиций
Скажите пожалуйста, как по времени соотносятся между собой пересчет тИЦ и пересчет позиций. Это происходит одновременно? Или сперва тИЦ,...

Пересчет амплитуды сигнала при ИКМ
Потребовалось на днях изменять амплитуду аналогового сигнала получаемого из ИКМ, или если по простому то нужно изменять громкость...

8
 Аватар для ksk
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
16.03.2013, 01:05
Если имеется в виду автоинкрементный индекс, то его лучше не трогать.
А если это именно порядковые номера, то правильнее всего и назначать триггером на INSERT и пересчитывать триггером на DELETE.
НО если в таблице будет много записей, то при удалении ранних записей начнутся заметные тормоза.
0
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 100
16.03.2013, 01:39  [ТС]
если можно пример по порядковому номеру?
0
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
16.03.2013, 17:18
К таблицам SQL не применимо понятие "порядковый номер". Можно высчитать номер по порядку возрастания или убывания значений какого-то поля таблицы, но в самих таблицах "порядковый номер" не существует. Это не строки в Excel.
Автоматически назначаемый номер строки (identity) тоже не имеет ничего общего с реальным количеством строк в таблице и не может трактоваться как "порядковый номер строки" - он просто гарантирует отсутствие в таблице второй строки с таким же номером.

Добавлено через 1 час 25 минут
Если все же требуется именно порядковый номер строки в таблице - определитесь, в каком порядке вы хотите получать из таблицы записи и используйте в запросе функцию ROW_NUMBER (которая требует явного указания полей таблицы, по которым происходит "нумерация" данных)
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
16.03.2013, 19:42
Цитата Сообщение от cygapb-007 Посмотреть сообщение
он просто гарантирует отсутствие в таблице второй строки с таким же номером.
Коллега, ссылку на такую гарантию посмотреть можно?

В общем, IDENTITY гарантирует, что при IDENTITY_INSERT OFF
вставляемая строка получит значение IDENT_CURRENT()+IDENT_INCR().
И больше ничего.
0
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
16.03.2013, 20:02
Цитата Сообщение от iap Посмотреть сообщение
Коллега, ссылку на такую гарантию посмотреть можно?

В общем, IDENTITY гарантирует, что при IDENTITY_INSERT OFF
вставляемая строка получит значение IDENT_CURRENT()+IDENT_INCR().
И больше ничего.
Тоже не совсем точная реплика 8)
Цитата Сообщение от http://msdn.microsoft.com/ru-ru/library/ms186775.aspx
Свойство идентификаторов столбца гарантирует следующее.
  • Каждое новое значение будет сформировано на основе текущих аргументов seed и increment.
  • Каждое новое значение для определенной транзакции будет отлично от других параллельных транзакций для таблицы.
то есть IDENTITY представляет собой эффективный механизм генерации ключей в многопользовательской среде - и не предназначен для вычисления "порядкового номера строки"
Далее по тексту:
Если присутствие пропусков неприемлемо, то для формирования значений ключей приложение должно использовать генератор последовательности с параметром NOCACHE или собственный механизм.
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
16.03.2013, 20:28
Цитата Сообщение от cygapb-007 Посмотреть сообщение
Тоже не совсем точная реплика 8)то есть IDENTITY представляет собой эффективный механизм генерации ключей в многопользовательской среде - и не предназначен для вычисления "порядкового номера строки"
Далее по тексту:
Подвожу итог: IDENTITY не может гарантировать уникальность.
Для этого используется уникальный индекс.
Могу без труда сочинить пример с таблицей, заполненной сотней записей,
имеющих одно и то же значение в поле со свойством IDENTITY.
0
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 100
16.03.2013, 22:47  [ТС]
прост у мя такая штука что добавляются записи с номером который указывают ну чтот тиипо нопер привоза (который раз был привоз)
и при удалении строк над сделать чтоб порядковые числа сами так сказать престраивались а не небыло 12358 и тд
очень много времени убил и ничего нее добился...
0
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
17.03.2013, 02:06
ключики есть? какие?
если нет - ROW_NUMBER в руки, ORDER BY на шею, и с песней вперед в просветлённое будущее

Добавлено через 2 часа 47 минут
Цитата Сообщение от iap Посмотреть сообщение
Подвожу итог: IDENTITY не может гарантировать уникальность.
Для этого используется уникальный индекс.
Могу без труда сочинить пример с таблицей, заполненной сотней записей,
имеющих одно и то же значение в поле со свойством IDENTITY.
десяти хватит ?)
T-SQL
1
2
3
4
5
6
7
create table #table (id int identity, name nvarchar(100))
go
set identity_insert #table on
insert #table(id, name) values(1,'')
go 10
select * from #table
drop table #table
Речь-то не о том немножко))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.03.2013, 02:06
Помогаю со студенческими работами здесь

Всплывает окно о повреждении корзины при включении и при удалении файлов
после включения компа постоянно выскакивает окошко с текстом "Корзина на диске D повреждена. Выполнить очистку корзины на этом диске?"...

Исчезают (при копировании) и восстанавливаются (при удалении) файлы с микроСД на 32гб
Карта работает нормально с той информацией, что на ней уже есть, плеер (сони волкман) ее определяет, файлы воспроизводит. но не удалить ,...

1С 8.3 Пересчет реквизитов в документе при изменении другого реквизита
Здравствуйте. В рукописной конфигурации есть документ "поступление товаров" с реквизитами склад, контрагент, ответственный и табличной...

При изменении количества в TextBox авто пересчёт в DataGridView
Всем привет. Задача такова, есть 1 TextBox, в нём указывается количество, изменив его в DataGridView в определённом столбике должен...

Как объединить 2 раздела диска при установке ОС? При их удалении незанятое место не объеденяется
Имеется три раздела диска. Нужно разделы C и D объединить. При удалении разделов на их местах остается "Незанятое место 0" и...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru