|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
wamacoСоздаете одну запись с нач.номером. далее при записи документа присв.номер и увеличиваете нумератор на 1. Все в одной транзакции. Все. Отпустили 100 накладных за 10 дней. Теперь вспомнили, что нужно удалить 1-ую накладную, отпущенную в первый день. Твои действия? Не понимаю, чем тебе поможет отдельная табличка и чем она лучше хранения порядкового номера непосредственно в рабочей таблице. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2014, 10:01 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
МСУwamacoСоздаете одну запись с нач.номером. далее при записи документа присв.номер и увеличиваете нумератор на 1. Все в одной транзакции. Все. Отпустили 100 накладных за 10 дней. Теперь вспомнили, что нужно удалить 1-ую накладную, отпущенную в первый день. Твои действия? Не понимаю, чем тебе поможет отдельная табличка и чем она лучше хранения порядкового номера непосредственно в рабочей таблице. Задним числом удалить накладную не верное решение. Снять участие в учете это можно. Поэтому номер останется за существующей накладной, пусть и не участвующей в учете. Второе, отдельная таблица будет хранить все нумераторы документов, это удобно. Плюс есть возможность устанавливать нумерацию с любого номера. Плюс легко скидывать нумерацию за периоды и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2014, 02:58 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
wamacoЗадним числом удалить накладную не верное решение. Снять участие в учете это можно. Поэтому номер останется за существующей накладной, пусть и не участвующей в учете. Правильно, этот процесс называется сторно, как я ранее и говорил. wamacoВторое, отдельная таблица будет хранить все нумераторы документов, это удобно. Плюс есть возможность устанавливать нумерацию с любого номера. Плюс легко скидывать нумерацию за периоды и т.д. Sequence? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2014, 09:07 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
[quot МСУ]wamacoSequence? Sequence... Sequence... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2014, 11:17 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
Одной строкой (начиная с SQL Server 2005), предпочтительно делать в отдельной транзакции: Код: sql 1.
Sequence -- это табличка с одним полем. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2014, 12:11 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
Нахлобуч, Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2014, 13:29 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
МСУНахлобуч, Код: c# 1.
"Не взлетит" (с) Sequence NumbersThe sequence object generates numbers according to its definition, but the sequence object does not control how the numbers are used. Sequence numbers inserted into a table can have gaps when a transaction is rolled back, when a sequence object is shared by multiple tables, or when sequence numbers are allocated without using them in tables. When created with the CACHE option, an unexpected shutdown, such as a power failure, can lose the sequence numbers in the cache ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2014, 16:39 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
sphinx_mvМСУНахлобуч, Код: c# 1.
"Не взлетит" (с) Sequence NumbersThe sequence object generates numbers according to its definition, but the sequence object does not control how the numbers are used. Sequence numbers inserted into a table can have gaps when a transaction is rolled back, when a sequence object is shared by multiple tables, or when sequence numbers are allocated without using them in tables. When created with the CACHE option, an unexpected shutdown, such as a power failure, can lose the sequence numbers in the cache Взлетит. Выделил красным. По поводу кэша изучаем матчасть. МатчастьЕсли компонент Компонент Database Engine непредвиденно завершает работу (например, из-за сбоя электропитания), то последовательность перезапускается с номера, считываемого из системных таблиц (39). Все порядковые номера, выделенные в память (но не запрошенные пользователем или приложением), теряются. При такой обработке возможны пропуски в номерах, однако гарантируется, что одно значение ни в коем случае не будет дважды назначено одному объекту последовательности, если для нее не задан параметр CYCLE или не выполнен перезапуск вручную. Кэш хранится в памяти путем отслеживания текущего значения (последнего назначенного) и количества значений, оставшихся в кэше. Таким образом, объем памяти, используемый для кэша, всегда равен размеру двух экземпляров типа данных объекта последовательности. Если установить аргумент кэша в значение NO CACHE, то текущее значение последовательности будет записываться в системные таблицы при каждом использовании последовательности. Это может снизить производительность за счет увеличения числа обращений к диску, но снижает вероятность нежелательных пропусков номеров. Пропуски по-прежнему возможны, если номера запрашиваются с помощью функции NEXT VALUE FOR или процедуры sp_sequence_get_range, однако это означает, что пропущенные номера не используются либо используются в незафиксированных транзакциях. Если в объекте последовательности используется параметр CACHE, то при перезапуске объекта последовательности или изменении свойств INCREMENT, CYCLE, MINVALUE, MAXVALUE или размера кэша кэш записывается в системные таблицы до выполнения изменения. Затем кэш перезагружается, начиная с текущего значения (т. е. числа не пропускаются). Изменение размера кэша вступает в силу немедленно. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2014, 16:46 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
МСУsphinx_mvпропущено... "Не взлетит" (с) пропущено... Взлетит. Выделил красным.А роллбэк почему пропустил? МСУПо поводу кэша изучаем матчасть. Если стоит задача "получить номер документа без пропусков нумерациии", то на "автосчетчиках" любого вида она не решается. Так что "не взлетит"... :) А вот если завести табличку что-то типа "журнал регистрации документов" и брать номер документа уже из него, то может получиться... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2014, 16:59 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
sphinx_mvМСУпропущено... Взлетит. Выделил красным.А роллбэк почему пропустил? МСУПо поводу кэша изучаем матчасть. Если стоит задача "получить номер документа без пропусков нумерациии", то на "автосчетчиках" любого вида она не решается. Так что "не взлетит"... :) А вот если завести табличку что-то типа "журнал регистрации документов" и брать номер документа уже из него, то может получиться... Так я тоже могу руками крутануть номер в табличке и у тогда будут дырки. Точно так же и с сиквенсом. Нехрен его крутить тем, кому не нужно. Не вижу принципиальной разницы. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2014, 18:00 |
|
|
start [/forum/topic.php?fid=20&msg=38537174&tid=1403373]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 360ms |
total: | 510ms |
0 / 0 |