AutoNumber


Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

AutoNumber - это тип данных, используемых в таблицах Microsoft Access для создания автоматически увеличивающегося числового счетчика. Его можно использовать для создания столбца идентификаторов, который однозначно идентифицирует каждую запись таблицы. В каждой таблице допускается только один AutoNumber.

Тип данных назывался Counter в Access 2.0. [1]

Формы

Есть три формы, в которых могут быть созданы AutoNumbers: [2]

начальное значение плюс приращение
Автоматические числа, генерируемые этим механизмом, начинаются с начального номера и увеличиваются с увеличением значения приращения, проверяя наличие конфликтов с существующими строками таблицы. [2]
случайный
Автоматические номера, генерируемые этим механизмом, назначаются с помощью генератора псевдослучайных чисел, который генерирует длинные целые числа и проверяет наличие конфликтов с существующими строками таблицы. [2]
идентификаторы репликации
Автоматические номера, генерируемые этим механизмом, представляют собой идентификаторы, сгенерированные таким образом, чтобы исключить вероятность возникновения коллизий. [2] Это глобальные уникальные идентификаторы Microsoft , и вероятность коллизии мала до 3400 года нашей эры. [3]

По умолчанию размер AutoNumber - это 4-байтовое (длинное) целое число. Это размер, используемый для начального + инкремента и случайных автоматических чисел. Для идентификатора репликации AutoNumbers FieldSizeсвойство поля изменяется с длинного целого на Replication ID. [2]

Если AutoNumber представляет собой длинное целое число, NewValuesсвойство определяет, имеет ли он форму начало + приращение или случайную форму. Это свойство может принимать значения «Приращение» и «Случайно». [4]

Использовать

Тип AutoNumber по умолчанию - это счетчик запуска + приращения с начальным значением 1 и приращением 1. Хотя во многих случаях такое поле AutoNumber будет выглядеть так, как если бы оно содержало счетчик строк, это не так. Удаление строк из таблицы, например, не приводит к повторной нумерации полей AutoNumber, а вместо этого оставляет «дыры» в нумерации. Точно так же, если транзакция по добавлению строки в таблицу началась, но позже была прервана, AutoNumber, назначенный для этой строки, не будет использоваться повторно. [2]

Форма по умолчанию «начало + приращение» с начальным значением 1 и приращением 1 подходит не для всех обстоятельств. Есть причины для выбора каждой формы и компромиссы при этом. [2]

Значения начала и приращения по умолчанию могут раскрывать информацию о таблице, которую желательно не раскрывать людям, просматривающим отдельные строки таблицы. Например, использование поля AutoNumber для идентификатора клиента может раскрыть информацию, которую желательно не раскрывать, скажем, клиенту номер 6. Это один из примеров случая, когда начальное значение поля AutoNumber повышается, так что номер клиента 6 имеет, скажем, значение поля AutoNumber 10006. [2]

Использование случайных значений желательно в тех случаях, когда было бы неудачно, если бы можно было угадать следующие значения, присвоенные новым строкам в таблице. Однако такое использование встречается редко. [2]

Обычная проблема с полями AutoNumber возникает при репликации таблиц. Если несколько пользователей используют несколько реплик таблицы, то вполне вероятно, что они в конечном итоге назначат одни и те же значения полям AutoNumber в новых строках, которые они добавляют, что вызовет конфликты репликации при объединении реплик. [2]

Эта проблема решается двумя способами. Во-первых, для таких авто-номеров можно использовать идентификаторы репликации. [2] Такие идентификаторы репликации, являющиеся идентификаторами GUID, будут уникальными для всех реплик с низкой вероятностью коллизии. [3] Во-вторых, когда Access создает реплики таблиц, он автоматически изменяет AutoNumbers формы начало + приращение на случайную форму. [4]

Манипуляция счетчиками с помощью DDL

Следующий запрос языка определения данных (DDL) создает поле AutoNumber с начальным значением и приращением:

CREATE  TABLE  Table1  (  Field1  COUNTER  ([ beginning_number ],  [ increment_number ]),  [...] );

Этот запрос сбрасывает счетчик:

 ALTER  TABLE  Table1  ALTER  COLUMN  Field1  COUNTER ( начальное_число ,  инкрементное_число );

Альтернативный метод сброса счетчика - отбросить столбец и повторно добавить его (побочным эффектом этого является перенумерация существующих строк в таблице):

 ALTER  TABLE  Table1  DROP  COLUMN  Field1 ;  ALTER  TABLE  Table1  ADD  Field1  COUNTER ;

использованная литература

  1. ^ Прага, Кэри и Майкл Ирвин. Доступ к Библии 2002 года . Нью-Йорк: Wiley Publishing, Inc., стр. 109.
  2. ^ Б с д е е г ч я J K Крис Гровер; Мэтью Макдональд и Эмили А. Вандер Вир (2007). Office 2007: отсутствующее руководство . О'Рейли. С. 636–638. ISBN 9780596514228.
  3. ^ a b Microsoft (9 января 2006 г.). «KBID 170117: Как использовать поля GUID в Access из Visual C ++» . База знаний Майкрософт . Microsoft.
  4. ^ a b Microsoft (2009). «Справочник по Microsoft Access Visual Basic: свойство NewValues» . MSDN . Microsoft . Проверено 5 июля 2009 .

дальнейшее чтение

  • Microsoft (2009). «Руководство разработчика .NET Framework: получение значений идентификаторов или автономных номеров» . MSDN . Microsoft . Проверено 5 июля 2009 .

внешние ссылки

  • Установить поле Autonumber с помощью VBA
Источник « https://en.wikipedia.org/w/index.php?title=AutoNumber&oldid=983467177 »