Sfera-perm.ru

Сфера Пермь
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Сброс счетчика таблиц sql

Изменяем пароль sa в MS SQL

Меняем пароль sa в sql

«sa» — это логин пользователя в MS SQL, имеющий по умолчанию самые высокие привилегии, сама учетка локальная, зачастую даже выключенная, но тем не менее часто используемая. Если вы потеряли или забыли пароль от этой учетки «sa», то у вас не будет доступа к управлению вашими БД.

Пароль sa по умолчанию

Сменить пароль sa в sql через графический интерфейс

Начнемс, откройте пуск и идите по пути Все программы > Microsoft SQL Server 2012 R2 > Среда SQL Server Management Studio

Либо вы можете открыть командную строку и ввести там ssms.

У вас откроется SQL Server Management Studio.

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

Учетная запись sa по умолчанию отключена, но это не помешает вам сменить ей пароль.

ms sql позволяет сбросить пароль sa через ее свойства, для этого щелкаете правым кликом и выбираете свойства из контекстного меню.

На вкладке общие вы увидите, поле для ввода нового пароля, единственное учтите, что если стоит галка Требовать использование политики паролей, вам придется придумать стойкий пароль отвечающий требованиям безопасности, а именно

  • Должна быть большая буква в пароле
  • Должна быть маленькая буква в пароле
  • Должен быть спецсимвол или цифра в пароле

Если галку снять, то можно задать новый пароль и сохранить. Пароль на пользователя sa в sql изменен.

Единственное, если вы хотите использовать учетную запись sa, то ее нужно включить, для этого перейдите в пункт состояние и укажите Имя входя Включено.

Еще нюанс, вы же помните, что у вас стоит проверка подлинности Windows, а это значит, что нам это не подходит для sa. Щелкнем правым кликом по названию сервера, вверху иерархии и выберем свойства.

На вкладке безопасность, выберем вариант Проверка подлинности SQL Server и Windows. Теперь вы можете заходить с помощью пользователя sa в sql.

Если при попытке войти Management Studio выдает ошибку 233, что подключение к серверу успешно установлено, но затем произошла ошибка при входе, то сделайте следующее.

Откройте Пуск > Панель управления > Администрирование > Службы и перезапустите службу SQL Server.

Тогда подключение проходит успешно и без ошибок.

Сменить пароль sa в sql через командную строку

Чтобы в sql сбросить пароль sa через командную строку воспользуйтесь командами.

Данной командой вы увидите все доступные сервера MS SQL их SPN

Далее вводите команду

osql -S имя сервера-Eдалее пишите

sp_password NULL, , ’sa’

Если вылезет сообщение Password validation failed. The password does not meet Windows policy requirements because it is too short. То задайте более строгий пароль.

Все после этого вы сбросите пароль sa в sql.

Еще вариант использования osql это вот так

cd C:Program FilesMicrosoft SQL Server110ToolsBinnзатем мы пытаемся подключиться под доверенной учетной записей ОС

osql.exe» -S (local)имя вашего сервера -E

И последний рубеж
ALTER LOGIN SA WITH PASSWORD= ‘new_password’
она заменит пароль на new_password

С помощью программы Asunsoft SQL Password Geeker

Есть утилита Asunsoft SQL Password Geeker, она платная, но способная выполнить поставленную задачу. Запускаем ее жмем Browse далее идем по пути C:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLDATA и открываем master.mdf

теперь, чтобы сбросить пароль sa в sql, выберите его и нажмите Reset.

Сменить пароль sa в монопольном режиме

Есть еще четвертый способ поменять пароль от sa, и заключается он в запуске MS SQL в однопользовательском режиме (single-user mode).

Первое это останавливаем MS SQL Server, можно через службы, а можно и из командной строки

Далее открываете реестр Windows и переходите в ветку

Теперь вам нужно задать параметр в строке ImagePath -m как раз и будет говорить об однопользовательском режиме. У меня получилось вот так

«C:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLBinnsqlservr.exe» -m -s MSSQLSERVER

Теперь запускаете MS SQL командой

Теперь SQL запущен в однопользовательском режиме и позволяет любому члену локальной группы администраторов компьютера подсоединяться к экземпляру SQL Server с правами sysadmin, но нужно SQL об этом сказать. Посмотреть режим работы можно в свойствах службы.

Читайте так же:
Счетчики таксометры для такси

В командной строке пишем

cd C:Program FilesMicrosoft SQL Server110ToolsBinnsqlcmd.exe: EXEC sp_addsrvrolemember ‘имя сервераимя пользователя’, ‘sysadmin’

Перезапускаем службу, не забудьте потом убрать параметр -m в реестре. Пароль сброшен на пользователя sa в sql.

1C 8.2/8.3 Как сбросить пароль от базы на SQL сервере

Оглавление

  • Переименовываем таблицу v8users и файл users.usr
  • Вход в 1С: Предприятие в режиме конфигуратора
  • Восстановление таблицы v8users и файла users.usr
  • Изменяем пароль администратора или создаем нового

Введение

Сброс пароля от базы данных 1С Предприятия 8.2/8.3 возможен только если у вас есть доступ к самой базе данных через консоль Microsoft SQL сервера. Если у вас нет доступа к MS SQL серверу, то постараюсь рассмотреть этот вопрос в отдельной статье.

Внимание! Перед процедурой сброса пароля администратора или любого другого пользователя базы 1С настоятельно рекомендую сделать резервную копию базы данных! По карйней мере я так всегда делаю .

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

Где в 1С 8.2/8.3 хранятся пароли

1С: Предприятие 8.2/8.3 хранит информацию о паролях в двух местах:

  • В таблице базы данных v8users.
  • В файле users.usr. Файл бинарно сохранен в таблице Params.

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

Так как получить администраторский доступ к 1С без пароля

Принцип данного способа заключается в том, что, если при загрузке базы 1С: Предприятия 8.2/8.3 не будет обнаружен ни один пользователь, то вошедший получит полные права. При этом, формирование списка доступных привилегий 1С выполняет только на входе и больше к ним не обращается.

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

Пункт 1. Переименовываем таблицу v8users и файл users.usr

Перед входом в базу данных, куда требуется получить доступ, переименуем таблицу v8users в v8users_tmp. Так же переименуем файл users.usr в users.usr_tmp.

Откроем Microsoft SQL Server Management Studio и выполним запрос к базе данных:

Идентификатор «your_database» замените на идентификатор вашей базы 1С. И запускаем его: F5 или иконка с восклицательным знаком.

Пункт 2. Вход в 1С: Предприятие в режиме конфигуратора

Теперь открываем 1С в режиме конфигуратора. При входе программа не запросит ни пользователя ни пароля. База откроется с полными правами.

Имейте в виду, что отдельные конфигурации 1С имеют ряд особенностей по управлению пользователями. Эти особенности следует учитывать при выполнении процедуры сброса пароля 1С.

Пункт 3. Восстановление таблицы v8users и файла users.usr

Как только зашли, вернём старые пароли на место. Создаем новый SQL запрос в Microsoft SQL Server Management Studio:

Идентификатор «your_database» замените на идентификатор своей базы 1С. И запускаем его: F5 или иконка с восклицательным знаком.

Пункт 4. Изменяем пароль администратора или создаем нового

В Конфигураторе 1С измените пароль существующего администратора на свой или создайте нового пользователя с административными правами.

Замечание: Сброс пароля 1С лучше делать для существующего пользователя. Имейте в виду, что в таких конфигурациях, как «Управление торговлей» версии 11 создание пользователей следует выполнять в режиме 1С: Предприятия, а не в Конфигураторе. Поэтому лучше изменить пароль существующего администратора, а не создавать через Конфигуратор нового пользователя.

В заключение

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

BestProg

Создание поля автоинкремента (счетчика) в таблице базы данных MS SQL Server , которая размещается в «*.mdf» -файле

В данной теме показано как создать поле-счетчик (уникальное поле) в таблице базы данных Microsoft SQL Server , которая размещается в файле «MyDataBase.mdf» .

Данная тема базируется на предыдущих темах:

Поиск на других ресурсах:

Читайте так же:
Заявление отказ от общедомового счетчика

Содержание

  • Условие задачи
  • Выполнение
    • 1. Подключение «*.mdf» -файла базы данных в MS Visual Studio
    • 2. Настройка поля ID_Source как счетчика. Свойство «Identity Column»
    • 3. Заполнение таблицы данными
  • Связанные темы

Условие задачи

Заданы файлы «MyDatabase.mdf» и «MyDataBase.ldf» базы данных, которые предназначены для работы в системе управления реляционными базами данных Microsoft SQL Server . Файлы можно скачать в архиве здесь .

База данных содержит одну таблицу с именем Source . Таблица Source содержит следующие поля:

  • ID_Source – целого типа ( int );
  • Name – типа «строка» из 50 символов;
  • Address – типа строка из 100 символов.

В задаче нужно сделать поле ID_Source уникальным счетчиком. При добавлении новой записи в таблицу, значение поля должно увеличиваться на 1 (автоинкрементное поле), то есть быть уникальным.

Выполнение

1. Подключение «*.mdf» -файла базы данных в MS Visual Studio

Запустить на выполнение MS Visual Studio .

С помощью утилиты Server Explorer нужно подключить ранее созданніе файлы «MyDataBase.mdf» и «MyDataBase.ldf» . Архив с файлами можно загрузить здесь .

Рекомендуется, чтобы файлы были размещены в одном каталоге.
Пример добавления готового (ранее созданного) «*.mdf» -файла локальной базы данных к MS Visual Studio подробно описывается в статье:

После подключения базы данных в окне Server Explorer будет отображена база данных «MyDataBase.mdf» (рисунок 1).

База данных содержит одну таблицу Source (рисунок 2), которая содержит поля в соответствии с условием задачи.

Рис. 1. База данных MyDataBase.mdf в окне Server Explorer

Рис. 2. Таблица Source

2. Настройка поля ID_Source как счетчика. Свойство «Identity Column»

В соответствии с условием задачи поле ID_Source может быть уникальным. Современные базы данных поддерживают уникальность полей. Это означает, что при добавлении новой записи в базу данных автоматически формируется новое уникальное значение. Как правило, при добавлении новой записи для целого типа новое уникальное значение увеличивается на 1 относительно предшествующего уникального значения (необязательно). Невозможно изменить вручную или программно значение записей поля, которое есть счетчиком (уникальным значением). Всю эту работу берет на себя система управления базами данных.

Чтобы установить поле ID_Source уникальным, нужно выполнить следующие действия:

  • раскрыть вкладку Tables в базе данных MyDataBase.mdf (рисунок 3);
  • в вкладке Tables сделать правый клик «мышкой» и из контекстного меню вызвать команду «Open Table Definition» (рисунок 3). В результате откроется окно определения полей таблицы;
  • активировать поле ID_Source и в окне свойств «Properties» установить значение свойства «Identity Column = ID_Source» (рисунок 4);
  • сохранить и закрыть таблицу Source .

Рис. 3. Команда «Open Table Definition»

Рис. 4. Установление свойства Identity Column в значение ID_Source

После выполненных действий поле ID_Source будет автоматически генерировать уникальное целочисленное значение.

Теперь эту таблицу можно использовать в своих проектах.

3. Заполнение таблицы данными

После установлки в таблице поля ID_Source как уникального счетчика можно программно или вручную заполнять таблицу данными (записями).

Чтобы заполнить таблицу данными (записями) нужно выполнить следующие действия:

  • вызвать контекстное меню с помощью правого клика мышкой на таблице Source и из контекстного меню выбрать команду «Show Table Data» (рисунок 5). В результате откроется окно ввода данных в таблицу (рисунок 6);
  • ввести данные в таблицу Source . Поскольку, поле ID_Source есть счетчиком, то вводить данные в это поле не удастся. Можно вводить данные только в полях Name и Address . Значение поля Source будет генерироваться автоматически.

Рис. 5. Команда «Show Table Data»

Рис. 6. Ввод данных в таблицу Source

Связанные темы
  • 001 — Пример создания/подключения локальной базы данных Microsoft SQL Server , которая размещается в «*.mdf» -файле
  • 002 — Пример создания новой таблицы в локальной базе данных Microsoft SQL Server , размещенной в «*.mdf» -файле
  • 004 — Создание связи (отношения) типа «один ко многим» между таблицами базы данных MS SQL Server
  • 005 — Пример создания «*.mdf» файла локальной базы данных Microsoft SQL Server в Microsoft Visual Studio
  • 006 — Строка соединения с базой данных. Пример использования в приложениях
  • 001 — Пример создания/подключения локальной базы данных Microsoft SQL Server , которая размещается в «*.mdf» -файле

Программирование: теория и практика

Рубрики

  • C# (160)
    • Практика (42)
      • MS Visual Studio 2010 (34)
      • MS Visual Studio 2017 (7)
      • MS Visual Studio 2019 (10)
    • Теория (118)
  • C++ (125)
    • Практика (31)
      • Borland C++ Builder 2007 (16)
      • MS Visual Studio 2010 (18)
    • Теория (95)
      • Visual C++ (91)
  • Delphi (32)
    • Практика (19)
      • Delphi-7 (3)
      • Embarcadero RAD Studio 2010 (17)
    • Теория (13)
  • Java (89)
    • Практика (6)
    • Теория (83)
  • Kotlin (13)
    • Практика (1)
    • Теория (12)
  • Python (82)
    • Практика (4)
    • Теория (78)
  • Базы данных (42)
  • Компьютерная графика (3)
  • Курсовые работы (7)
  • Математическое ПО (9)
  • Паттерны (17)
Читайте так же:
Замена счетчика с тт закоротить обмотки

Свежие записи

  • Python. Комплексные числа. Модуль cmath. Функции преобразования в полярные координаты 9 октября, 2021
  • Kotlin. Функции с единственным выражением. Тип Unit 7 октября, 2021
  • Python. Комплексные числа. Модуль cmath. Создание комплексного числа 6 октября, 2021
  • Java. Пакет java.lang. Общие сведения 26 сентября, 2021
  • C++. Библиотека стандартных шаблонов STL. Общие понятия 26 сентября, 2021
  • Patterns. Паттерн Chain of Responsibility (цепочка обязанностей). Реализация на C++ 25 сентября, 2021
  • Kotlin. Функции. Область видимости функции 23 сентября, 2021
  • Java. Тестирование JUnit. Пример 20 сентября, 2021
  • Python. Генераторы списков 17 сентября, 2021
  • Kotlin. Функции. Ключевое слово fun. Рефакторинг функции 15 сентября, 2021

При использовании материалов сайта, ссылка на сайт обязательна.

Запрос SQL на добавление и удаление записей

В этой статье мы разберём, пожалуй, одни из самых важных SQL-запросов. Это запросы на добавление и удаление записей из таблицы базы данных. Поскольку, ОЧЕНЬ часто приходится добавлять новые записи в таблицу, причём делать это в автоматическом режиме, то данный материал обязателен к изучению.

Для начала SQL-запрос на добавление новой записи в таблицу:

INSERT INTO users (login, pass) values(‘TestUser’, ‘123456’)

При добавлении записи вначале идёт команда «INSERT INTO«, затем название таблицы, в которую мы вставляем запись. Далее идёт в круглых скобках названия полей, которые мы хотим заполнить. А затем в круглых скобках после слова «values» начинаем перечислять значения тех полей, которые мы выбрали. После выполнения этого запроса в нашей таблице появится новая запись.

Иногда требуется обновить запись в таблице, для этого существует следующий SQL-запрос:

UPDATE users SET login = ‘TestUser2′, pass=’1234560′ WHERE login=’TestUser’

Данный запрос является более сложным, так как он имеет конструкцию «WHERE«, но о ней чуть ниже. Вначале идёт команда «UPDATE«, затем имя таблицы, а после «SET» мы описываем значения всех полей, которые мы хотим изменить. Было бы всё просто, но встаёт вопрос: «А какую именно запись следует обновлять?«. Для этого существует «WHERE«. В данном случае мы обновляем запись, поле «login» у которой имеет значение «TestUser«. Обратите внимание, что если таких записей будет несколько, то обновятся абсолютно все! Это очень важно понимать, иначе Вы рискуете потерять свою таблицу.

Давайте немного ещё поговорим о «WHERE«. Помимо простых проверок на равенство существуют так же и неравенства, а также логические операции: AND и OR.

UPDATE users SET login = ‘TestUser2′, pass=’1234560’ WHERE id

Данный SQL-запрос обновит те записи, id которых меньше 15 И поле «login» имеет значение «TestUser«. Надеюсь, Вы разобрались с конструкцией «WHERE«, потому что это очень важно. Именно «WHERE» используется при выборке записей из таблиц, а это самая частоиспользуемая задача при работе с базами данных.

И, напоследок, простой SQL-запрос на удаление записей из таблицы:

DELETE FROM users WHERE login=’TestUser2′

После команды «DELETE FROM» идёт имя таблицы, в которой требуется удалить записи. Дальше описываем конструкцию «WHERE». Если запись будет соответствовать описанным условиям, то она будет удалена. Опять же обратите внимание, в зависимости от количества записей, удовлетворяющих условию после «WHERE«, может удалиться любое их количество.

Вот Вы и узнали, как добавлять, обновлять и удалять записи из таблицы. А в следующей статье я Вас познакомлю с тем, как делать выборку записей из таблицы, а это является, пожалуй, самым важным при работе с базами данных.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Читайте так же:
Где взять заземление у счетчика

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 35 ):

    А как сделать апдейт таблицы так чтобы когда человек открыл форму на сайте то у него отображалась уже внесенная информация, в общем как вконтакте. хочет человек отредактировать даные о себе то там пишутся уже существующие данные. Ну или анологично phpmyadmin у !

    Для этого узнаётся сначала пользователь (допустим, из сессии или GET-параметра). Дальше на основании id пользователя или его логина делается выборка соответствующей записи. В результате получается массив со всеми данными пользователя, которые затем просто подставляются в форму.

    $result = mysql_query(«INSERT INTO information (deiatelnost) VALUES (‘$deiatelnost’) WHERE login=’$login’ «) Когда я делаю запрос с указанием сессионного логина, мне выдает такую ошибку: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘WHERE login=’мой логин» at line 1

    Попробуйте вместо «мой логин» подставить «mylogin».

    «мой логин» — это ошибка. а вообще там стоит не «мой логин» а мой логин на английском!

    $result = mysql_query(«INSERT INTO `information` (`deiatelnost`) VALUES (‘$deiatelnost’) WHERE `login`=’$login'») Попробуйте такой запрос с обратными кавычками.

    РАзницы нет. Но я попробовал ошибка вообще не на счет синтаксических ошибок. я вообще таких запросов раньше не писал. поэтому не знаю. да вообще с высоконагружеными системами не работал..=(

    Запрос правильный на 100%. Единственное, что, возможно, переменная $login некорректная приходит. Но это уже Вам лучше знать. Если с ней всё хорошо, то тогда проблема в структуре таблицы (названия таблицы и её полей, типы полей, допустимые значения и прочее).

    Спасибо большое! Все работает , разобрались=) Теперь очень прошу вас описать функцию Cron , как запускать этот скрипт через крн. было бы идеально посвятить этому целую тему=))) И еще хоть убейте, не могу найти вашу статью про аудио/видео проигрыватели на сайте. прошу ссылку=) Спасибо за помощь вам, вы мне во многом уже помогли=)))

    Про cron постараюсь в скором времени написать. Про аудио: http://myrusakov.ru/html-add-audio.html И про видео: http://myrusakov.ru/html-video.html Ещё на сайте есть поиск, где эти статьи элементарно найти, введя «аудио» и «видео».

    Про Cron буду ждать вашей сатьи, так как я не могу с ней разобратся, а она мне очень необходима для онлайн пользователей=)

    Михаил! Опять столкнулся с проблемой. пишу запрос на добавление информации зарегестрированным пользователем именно его записи к нему в строку. $res = mysql_query(«INSERT INTO information (deiatelnost) VALUES (‘$deiatelnost’) WHERE login=’$login'»); Этим запросом просто не хочет добавлять запись . а вот если я ввожу тот же запрос но уже без login=»$login» то все добавляется но соответственно без логина, и уже следовательно вытащить эти данные для конкретного пользователя просто нет возможности. что делаю не так? Могу скинуть на почту полный код action. спасибо заранее=)

    Постараюсь объяснить, что Вы хотите: «Я хочу добавить запись в существующую запись». Вам не кажется, что это странно? Если Вам нужно обновлять запись, то используйте команду UPDATE.

    так в том то и дело, что я создал чистый столбец дабы разгрузить все остальные(заранее), и там человек который авторизирован под своим логином может добавить новую запись о себе именно ДОБАВИТЬ, ну а после того как добавил он будет апдейтить себя соответственно, Вопрос в том что сейчас запись не добавляется если я ставлю login=’$login’ =(( А если этой записи нет но добавляет инфу, но она соответственно не относится к этому пользователю так как вытащить ее можно для любого другого пользователя авторизированного на сайте. Что не так с запросом?

    Читайте так же:
    Принципиальные схемы остановки счетчика

    Для таких случаев в таблице делают поле user_id, в котором содержится id того пользователя, который добавил данную запись. Всё, что я писал ранее, остаётся в силе. Вы требуете от MySQL абсурд, который он выполнить не сможет.

    Как «заставить» счетчик начинать нумеровать с произвольного номера и с произвольным инкрементом

    Иногда необходимо изменить начальный номер счетчика с которого начинается автоматический отсчет. Просто так в Access это сделать не удастся.

    Для того, чтобы добиться этой цели, необходимо добавить в таблицу запись с нужным значением счетчика.

    Редактировать поле «счетчик» можно разными путями — либо запросом на добавление, либо из кода VBA с помощью объекта Recordset.

    Пример с использованием временной таблицы и запроса:

    Допустим, у Вас есть таблица Table1, которая содержит поле счетчика ID, которое вы желаете стартовать с другого номера. Не вводите пока никаких записей в таблицу. Создайте, другую временную таблицу с одним полем типа Длинное целое, которое имеете тоже имя (в нашем случае ID), что и поле счетчика в первой таблице. Создайте запись во временной таблице, введя номер на единицу меньше того, с какого вы желаете стартовать счетчик в таблице Table1. Создайте запрос на добавление, чтобы добавить одну запись из второй таблицы в первую таблицу, и запустите его. Удалите вторую временную таблицу, удалите запись, которая появилась в таблице Table1 и начинайте вводить данные.

    Пример с использованием запроса:

    ‘Есть таблица «Table1» с полем «ID» типа «счетчик»

    PARAMETERS [Number] Long;

    INSERT INTO Table1( [ID] )

    Select [Number] As Expr1;

    Создаете новый запрос, добавляете таблицу, выбираете режим SQL, вставляете эти строки и сохраняете запрос.

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

    Пример с использованием VBA:

    ‘Есть таблица «Table1» с полем «ID» типа «счетчик»

    Public Function AddNumer(lNum As Long) As Long

    On Error GoTo Err_

    Dim rs As Recordset

    Set rs = CurrentDb.OpenRecordset(«Table1»)

    Учтите только, что если Вы введете число меньше, чем значение счетчика в данный момент, запись добавится, но нумерация все равно будет идти по принципу: максимальное число + 1. Например, у Вас значение счетчика было 333, Вы добавляете запись со значением 222 — запись, конечно, добавится, но все равно счетчик будет продолжать нумеровать 334, 335, 336. т.е. максимальное значение в данном поле + 1.

    После удаления всех записей из таблицы, поле счетчик не сбрасывается на единицу, а продолжает последовательно нумеровать и дальше. Поэтому необходимо после очистки таблицы сжать (compact) базу данных. Если из таблицы удалить не все записи, то после сжатия значение поля autonumber при добавлении будет равно максимальному — тому, что уже есть в таблице +1 (Если, конечно, свойство поля счетчик «New Values» установлено в «Increment»). Другой путь сбросить на единицу — удалить поле счетчика и создать его снова в таблице.

    Можно использовать мощные инструкции SQL:

    ‘Есть таблица «Table1» с полем «ID» типа «счетчик»

    ALTER TABLE Table1 ALTER COLUMN ID Counter(1,1)

    Создаете новый запрос, добавляете таблицу, выбираете режим SQL, вставляете эти строки и сохраняете запрос.

    Можно сказать, что это малодокументированная команда 😉 с широкими возможностями управления полем типа счетчик.

    Команда позволяет задавать для таблицы начальный отсчет ( 1 ,1) и инкремент (1, 1 ). Можно задавать, например, начальный отсчет с 1000 с инкрементом в 10 . Counter(1000,10), причем никаких ограничений не накладывается — можно задавать значение меньшее, чем максимально присутствующее в этом поле, в отличие от примера с использованием запроса. Никаких процедур по сжатию базы для сброса счетчика не требуется. Понятно, что если будет пересечение, т.е. добавляемое значение счетчика уже присутствует в таблице, то механизм индексирования не даст ввести дублирующее значение и вывесит предупреждающее сообщение. Также нельзя таким способом изменить значение счетчика, если поле счетчика (в данному случае ID) участвует в одной или нескольких связях. С другой стороны, что стоит удалить связь, выполнить запрос на изменение счетчика и заново создать связь.

    голоса
    Рейтинг статьи
    Ссылка на основную публикацию
    Adblock
    detector