Сброс счетчика таблиц sql
Записная книжка программиста-новичка, C#, SQL, PHP и все-все-все
Я ведь это уже делал, но хрен теперь найдешь тот кусок кода, гуглим снова… Где бы найти простое и понятное руководство для начинающего, а не тонкости для мега-гуру?
Рубрики
- C#
- ASP
- MS Office
- Excel
- WinForms
- Самоучитель C#
- Php
- WordPress
- Transact SQL / MS SQL
- переводы
- Разное
- Теория
Свежие записи
- Вырезаем числовую часть из начала строки в transact-sql
- Пул соединений с базой данных в ADO.NET / OleDb — как избежать проблем с утечкой соединений в ASP.NET (перевод)
- ASP .Net MVC, JQuery и AJAX — отсылаем данные на сервер
- Разделитель тысяч и дробной части для decimal
- Создаем расширенный Control в WinForms наследуясь от существующего
- Вставка строк и изменение границ ячеек в Excel Interop из C#
- Как прочитать данные из удаленного DataRow в DataTable
- Проблемы с кодировкой при копировании русского текста из MS SQL Studio в Outlook/Word/Office
- Как проверить, существует ли таблица в MS SQL Server перед удалением/созданием
- Очень просто.
- Получаем выбранные строки DataGridView, в котором выбраны только ячейки
- Ошибка в коде привела к убыткам в 476 миллионов долларов и банкротству компании
- Отслеживаем изменения выбранного значения в колонке ComboBox DataGridView (DataGridViewComboBoxColumn)
- Excel 2010, Windows 7, два монитора и «ошибка при направлении команды приложению»
- Удаляем default-ограничение (constraint) в Transact Sql
Свежие комментарии
- bonanza88 к записи Вырезаем числовую часть из начала строки в transact-sql
- DavidRic к записи Вырезаем числовую часть из начала строки в transact-sql
- АртемМишанов к записи ASP .Net MVC, JQuery и AJAX — отсылаем данные на сервер
- Макс к записи Как изменить внешний вид курсора в C# и WinForms
- Григорий к записи Особенности работы с ComboBoxColumn в DataGridView
Архивы
- Ноябрь 2015
- Октябрь 2014
- Август 2014
- Апрель 2014
- Март 2014
- Январь 2014
- Ноябрь 2013
- Октябрь 2013
- Сентябрь 2013
- Август 2013
- Июль 2013
- Май 2013
- Апрель 2013
- Март 2013
- Февраль 2013
- Декабрь 2012
- Ноябрь 2012
- Октябрь 2012
- Сентябрь 2012
- Август 2012
- Июль 2012
- Июнь 2012
- Апрель 2012
- Март 2012
- Февраль 2012
- Январь 2012
- Декабрь 2011
- Сентябрь 2011
- Июль 2011
- Июнь 2011
- Май 2011
- Апрель 2011
- Март 2011
- Февраль 2011
- Январь 2011
- Войти
- RSS записей
- RSS комментариев
- WordPress.org
Как сбросить значение столбца identity на 0 в Transact Sql
При удалении строк из таблицы счетчик столбца с identy остается на последнем значении. Удалили тысячу строк, следующая вставленная будет иметь код не 1, а 1001. Чтобы при удалении данных сбросить значение identity используем следующий код:
Сброс семени идентификатора после удаления записей в SQL Server
Я вставил записи в таблицу базы данных SQL Server. В таблице был определен первичный ключ, а начальное значение идентификатора автоматического приращения установлено на “Yes”. Это делается в первую очередь потому, что в SQL Azure каждая таблица должна иметь первичный ключ и идентификатор.
Но поскольку мне нужно удалить некоторые записи из таблицы, семя идентификатора для этих таблиц будет нарушено, и столбец индекса (который автоматически генерируется с шагом 1) будет нарушен.
Как я могу сбросить столбец идентификаторов после удаления записей, чтобы столбец имел последовательность в возрастающем числовом порядке?
Столбец identity нигде в базе данных не используется в качестве внешнего ключа.
20 ответов
- Сброс SQL Server плана выполнения
Я смотрел на всем протяжении для этого command. what’s команду на сброс планом выполнения работ SQL Server это?
У вас есть таблица table1 , которая содержит столбец id , то есть int(11), not null, auto_increment и начинается с 1. Предположим, у вас есть 10 000 записей. Ясно, что идентификатор последней записи равен 10 000. После удаления 3 записей в таблице остается 9997 записей, но значение идентификатора.
Команда управления DBCC CHECKIDENT используется для сброса счетчика идентификаторов. Синтаксис команды таков:
Он не поддерживался в предыдущих версиях Azure SQL Database, но поддерживается сейчас.
Благодаря Соломону Руцки документы для команды теперь исправлены.
Где 0-начальное значение identity
Следует отметить, что IF все данные удаляются из таблицы с помощью DELETE (т. Е. без предложения WHERE ), то до тех пор, пока а) разрешения позволяют это, и б) нет FKs, ссылающихся на таблицу (что, по-видимому, имеет место здесь), использование TRUNCATE TABLE было бы предпочтительнее, поскольку оно делает более эффективным DELETE и сбрасывает семя IDENTITY одновременно. Следующие сведения взяты со страницы MSDN для таблицы УСЕЧЕНИЯ :
По сравнению с оператором DELETE, таблица УСЕЧЕНИЯ имеет следующие преимущества:
Используется меньше места в журнале транзакций.
Оператор DELETE удаляет строки по одной за раз и записывает запись в журнал транзакций для каждой удаленной строки. УСЕЧЕНИЕ ТАБЛИЦЫ удаляет данные, освобождая страницы данных, используемые для хранения данных таблицы, и записывает только освобождения страниц в журнал транзакций.
Обычно используется меньше замков.
Когда оператор DELETE выполняется с использованием блокировки строк, каждая строка в таблице блокируется для удаления. УСЕЧЕНИЕ ТАБЛИЦЫ всегда блокирует таблицу (включая блокировку схемы (SCH-M)) и страницу, но не каждую строку.
Без исключения в таблице остается ноль страниц.
После выполнения оператора DELETE таблица все еще может содержать пустые страницы. Например, пустые страницы в куче не могут быть освобождены без, по крайней мере, исключительной блокировки таблицы (LCK_M_X). Если операция удаления не использует блокировку таблицы, таблица (куча) будет содержать много пустых страниц. Для индексов операция удаления может оставить пустые страницы, хотя эти страницы будут быстро освобождены в процессе фоновой очистки.
Если таблица содержит столбец идентификаторов, счетчик для этого столбца сбрасывается до начального значения, определенного для этого столбца. Если начальное значение не было определено, используется значение по умолчанию 1. Чтобы сохранить счетчик идентификаторов, вместо этого используйте DELETE.
Пожалуйста, обратитесь к документации TRUNCATE TABLE (ссылка выше) для получения дополнительной информации об ограничениях и т.д.
- сброс идентификатора(первичного ключа) после удаления записи в sql
Как сбросить значение после удаления конкретной записи в sql с помощью mvc2 бывшие записи: 1,2,3 удалены record:3 теперь я добавляю новую запись .it, которая должна иметь идентификатор 3, а не 4. что я могу для этого сделать??
В настоящее время я работаю с базой данных, содержащей около 35+ записей, и она растет. Это база данных с журналами технического обслуживания, в которых я выполняю некоторый анализ, чтобы извлечь некоторые данные о техническом обслуживании. Результаты анализа хранятся в той же базе данных в другой.
Хотя большинство ответов предлагают от RESEED до 0, много раз нам нужно просто повторно ввести следующий доступный идентификатор
Это проверит таблицу и сбросит ее на следующий ID.
Я попробовал ответить @anil shahs , и он сбросил личность. Но когда была вставлена новая строка, она получила identity = 2 . Поэтому вместо этого я изменил синтаксис на:
Тогда первая строка получит идентификатор = 1.
Хотя большинство ответов предлагают от RESEED до 0 , и хотя некоторые считают это недостатком для таблиц TRUNCATED , у Microsoft есть решение, исключающее ID
Это проверит таблицу и сбросит ее на следующий ID . Это было доступно с MS SQL 2005 по настоящее время.
выдача команды 2 может сделать трюк
первый сбросит идентификатор до нуля , а следующий установит его на следующее доступное значение — джейкоб
Сработало для меня, я просто должен был сначала очистить все записи из таблицы, а затем добавить вышеизложенное в триггерную точку после удаления. Теперь всякий раз, когда я удаляю запись, она берется оттуда.
таблица Truncate предпочтительнее, поскольку она очищает записи, сбрасывает счетчик и освобождает место на диске.
Delete и CheckIdent следует использовать только в тех случаях, когда внешние ключи препятствуют усечению.
Сбросьте столбец идентификаторов с новым идентификатором.
Это обычный вопрос, и ответ всегда один и тот же: не делайте этого. Значения идентификаторов следует рассматривать как произвольные, и, как таковые, порядка «correct» не существует.
Запустите этот сценарий, чтобы сбросить столбец идентификаторов. Вам нужно будет внести два изменения. Замените tableXYZ любой таблицей, которую вам нужно обновить. Кроме того, имя столбца идентификаторов должно быть удалено из временной таблицы. Это произошло мгновенно в таблице с 35 000 строками & 3 столбцами. Очевидно, создайте резервную копию таблицы и сначала попробуйте это в тестовой среде.
Для этого я использую следующий сценарий. Существует только один сценарий, в котором он приведет к «error», то есть если вы удалили все строки из таблицы, а IDENT_CURRENT в настоящее время имеет значение 1, то есть в таблице изначально была только одна строка.
Я пытался сделать это для большого количества таблиц во время разработки, и это работает как заклинание.
Итак, сначала вы заставляете его быть равным 1, а затем устанавливаете его на самый высокий индекс строк, присутствующих в таблице. Быстро и легко rest из idex.
Это установит текущее значение идентификатора равным 0.
При вставке следующего значения значение идентификатора увеличивается до 1.
Используйте эту хранимую процедуру:
Просто пересматриваю свой ответ. Я наткнулся на странное поведение в sql server 2008 r2, о котором вы должны знать.
При первом выборе получается 0, Item 1 .
Второй производит 1, Item 1 . Если вы выполните сброс сразу после создания таблицы, следующее значение будет равно 0. Честно говоря, я не удивлен, что Microsoft не может сделать это правильно. Я обнаружил это, потому что у меня есть файл сценария, который заполняет справочные таблицы, которые я иногда запускаю после повторного создания таблиц, а иногда и когда таблицы уже созданы.
Для полного DELETE строк и сброса количества IDENTITY я использую это (SQL Server 2008 R2)
Пересев на 0 не очень практичен, если вы не убираете таблицу в целом.
с другой стороны, ответ, данный Энтони Рэймондом, совершенен. Получите максимум из столбца идентификаторов, во-первых, то семя его с Максом.
Всегда лучше использовать TRUNCATE , когда это возможно, вместо удаления всех записей, так как он также не использует пространство журнала.
В случае, если нам нужно удалить и нужно сбросить начальное значение, всегда помните, что если таблица никогда не заполнялась и вы использовали DBCC CHECKIDENT(‘tablenem’,RESEED,0) , то первая запись получит identity = 0 , как указано в документации msdn
В вашем случае только перестройте индекс и не беспокойтесь о потере ряда идентификаторов, так как это распространенный сценарий.
Во-первых : Спецификация идентификатора Просто : «No» >> Сохранить базу данных Выполнить проект
После этого : Спецификация идентификатора Просто : «YES» >> Сохранить базу данных Выполнить проект
Ваша база данных ID, PK Начинается с 1 >>
Похожие вопросы:
Я использую sql server 2012, в моей базе данных у меня есть набор primaykey по userId и я поставил спецификация личность, да личность да,шаг приращения идентификатора 1 и идентичность семени, 1. Я.
Нужен пакетный скрипт для удаления всех записей в таблице базы данных SQL Server CE. Не знаю, возможно ли это, я слаб в написании сценариев.
Я удалил некоторые записи из таблицы в базе данных SQL Server. Теперь ID-е идут от 101 до 1200. Я хочу снова удалить записи, но я хочу, чтобы ID вернулись к 102. Есть ли способ сделать это в SQL.
Я смотрел на всем протяжении для этого command. what’s команду на сброс планом выполнения работ SQL Server это?
У вас есть таблица table1 , которая содержит столбец id , то есть int(11), not null, auto_increment и начинается с 1. Предположим, у вас есть 10 000 записей. Ясно, что идентификатор последней записи.
Как сбросить значение после удаления конкретной записи в sql с помощью mvc2 бывшие записи: 1,2,3 удалены record:3 теперь я добавляю новую запись .it, которая должна иметь идентификатор 3, а не 4.
В настоящее время я работаю с базой данных, содержащей около 35+ записей, и она растет. Это база данных с журналами технического обслуживания, в которых я выполняю некоторый анализ, чтобы извлечь.
У меня есть проблема, которую я не могу решить сам. Моя кнопка сброса запроса клиента, которая обеспечивает удаление всех записей и сброс ID. Там нет проблем для удаления записей, но я не могу.
У меня есть база данных, и мое намерение состоит в том, чтобы удалить некоторые старые записи из нескольких таблиц через определенный период времени, сделать резервную копию и сжать файл журнала. Я.
Я использую SQL Server, мне нужно вызвать Triger после создания или удаления каждой таблицы. Я хочу выполнить код после создания или удаления таблицы У меня есть таблица TableShemaChanges , где я.
Сбросить семя идентификации после удаления записей в SQL Server
Я вставил записи в таблицу базы данных SQL Server. Для таблицы был определен первичный ключ, и для начального идентификатора с автоприращением установлено значение «Да». Это делается главным образом потому, что в SQL Azure для каждой таблицы должны быть определены первичный ключ и идентификатор.
Но поскольку мне нужно удалить некоторые записи из таблицы, начальное число идентификаторов для этих таблиц будет нарушено, а столбец индекса (который создается автоматически с шагом 1) будет нарушен.
Как я могу сбросить столбец идентификаторов после удаления записей, чтобы столбец имел последовательность в порядке возрастания номеров?
Столбец идентификации не используется в качестве внешнего ключа в базе данных.
Команда DBCC CHECKIDENT управления используется для сброса счетчика идентификаторов. Синтаксис команды:
Это не поддерживалось в предыдущих версиях базы данных SQL Azure, но теперь поддерживается.
Обратите внимание, что new_reseed_value аргумент варьируется в зависимости от версии SQL Server в соответствии с документацией :
Если в таблице присутствуют строки, следующая строка вставляется со значением new_reseed_value . В версии SQL Server 2008 R2 и более ранних версиях следующая вставленная строка использует new_reseed_value + текущее значение приращения.
Однако я нахожу эту информацию вводящей в заблуждение (на самом деле просто неверной), поскольку наблюдаемое поведение указывает, что по крайней мере SQL Server 2012 все еще использует new_reseed_value + логику текущего значения приращения. Microsoft даже противоречит собственному, Example C найденному на той же странице:
C. Принуждение текущего значения идентичности к новому значению
В следующем примере значение текущего идентификатора в столбце AddressTypeID в таблице AddressType устанавливается равным 10. Поскольку в таблице есть существующие строки, в следующей вставленной строке в качестве значения будет использоваться 11, то есть новое текущее значение приращения, определенное для значение столбца плюс 1.
Тем не менее, все это оставляет возможность для другого поведения в новых версиях SQL Server. Я предполагаю, что единственный способ быть уверенным, пока Microsoft не прояснит ситуацию в своей собственной документации, это сделать реальные тесты перед использованием.
Где 0 — identity начальное значение
Следует отметить, что ЕСЛИ все данные удаляются из таблицы через DELETE (то есть без WHERE предложения), то, если это разрешено разрешениями a), и b) отсутствуют FK, ссылающиеся на таблицу (которая, по-видимому, является случай здесь), использование TRUNCATE TABLE было бы предпочтительным, так как это делает более эффективным DELETE и сбрасывает IDENTITY семя в то же время. Следующие подробности взяты со страницы MSDN для TRUNCATE TABLE :
По сравнению с оператором DELETE TRUNCATE TABLE имеет следующие преимущества:
Меньше места в журнале транзакций.
Оператор DELETE удаляет строки по одной за раз и записывает запись в журнал транзакций для каждой удаленной строки. TRUNCATE TABLE удаляет данные, освобождая страницы данных, используемые для хранения данных таблицы, и записывает только освобождения страниц в журнал транзакций.
Обычно используется меньше замков.
Когда оператор DELETE выполняется с использованием блокировки строк, каждая строка в таблице блокируется для удаления. TRUNCATE TABLE всегда блокирует таблицу (включая блокировку схемы (SCH-M)) и страницу, но не каждую строку.
Все без исключения нулевые страницы остаются в таблице.
После выполнения оператора DELETE таблица все еще может содержать пустые страницы. Например, пустые страницы в куче не могут быть освобождены без хотя бы исключительной (LCK_M_X) блокировки таблицы. Если операция удаления не использует блокировку таблицы, таблица (куча) будет содержать много пустых страниц. Для индексов операция удаления может оставить пустые страницы позади, хотя эти страницы будут быстро освобождены в процессе фоновой очистки.
Если таблица содержит столбец идентификаторов, счетчик для этого столбца сбрасывается на начальное значение, определенное для столбца. Если начальное число не было определено, используется значение по умолчанию 1. Чтобы сохранить счетчик идентификаторов, используйте вместо этого DELETE.
Пожалуйста, смотрите TRUNCATE TABLE документацию (ссылка выше) для получения дополнительной информации об ограничениях и т. Д.
Как сбросить AUTO_INCREMENT в MySQL/MariaDB
AUTO_INCREMENT — это свойство поля таблицы, суть которого заключается в том, что при добавлении новых записей значение этого столбца устанавливается автоматически, причём значение равно на единицу больше предыдущего. Это свойство удобно применять для создания уникальных идентификаторов каждой строки — не нужно получать количество уже имеющихся строк или последнее значение, нет опасности запутаться.
Но у AUTO_INCREMENT есть одно интересное свойство — при удалении строк значение счётчика AUTO_INCREMENT не уменьшается. То есть, например, в таблицу было добавлено 10 записей, после этого все записи были удалены, а затем стали добавлять новые записи — в результате у первой новой записи значение столбца с AUTO_INCREMENT будет 11, у второй будет 12 и так далее.
Отсюда иногда возникает задача — сбросить значение AUTO_INCREMENT или установить AUTO_INCREMENT на единицу.
Сброс AUTO_INCREMENT для InnoDB баз данных
Если таблица не пустая, то для таких таблиц с движком хранения InnoDB невозможно установить AUTO_INCREMENT равное или меньшее значению в последней записи. Это вполне логично, поскольку в противном случае это привело бы к дублированию значения, которое должно быть уникальным для каждой строки.
Как сбросить AUTO_INCREMENT в phpMyAdmin
В веб интерфейсе phpMyAdmin вы можете просмотреть текущее значение AUTO_INCREMENT и изменить его. Для этого выберите таблицу, для которой вы хотите поменять AUTO_INCREMENT, затем перейдите в Операции → Параметры таблицы → AUTO_INCREMENT:
Установите желаемое значение — помните об ограничении для не пустых таблиц InnoDB.
Очистка таблицы и сброс AUTO_INCREMENT
Как уже было сказано, если удалить записи обычными средствами, то это удаление не сбрасывает значение AUTO_INCREMENT даже если удалены абсолютно все строки.
Выполнить удаление всех записей вместе со сбросом счётчика AUTO_INCREMENT можно командой:
Изменение/сброс счётчика AUTO_INCREMENT без очистки таблицы
Другим вариантом является следующий SQL запрос:
Обратите внимание, что AUTO_INCREMENT можно установить на любое значение — но помните об ограничении для непустых таблиц InnoDB.
И ещё очень важное замечание об ALTER TABLE. Дело в том, что этот запрос приводит к перестроению всей таблицы. То есть MySQL создаст новую таблицу с той же структурой и добавит новое значение auto_increment и скопирует все записи с оригинальной таблицы, удалит оригинальную таблицу и переименует новую. Если таблица содержит много записей, то этот процесс может затянуться очень надолго.
Если нужно увеличить значение счётчика AUTO_INCREMENT, то проще вставить ненужную строку (а затем удалить, если нужно). Это займёт долю секунды, в то время как ALTER TABLE может потребовать дни для больших таблиц.
Допустим, я у меня есть таблица со столбцом auto_increment ID и другими столбцами col1, col2…:
Как уменьшить значение AUTO_INCREMENT для InnoDB
Предположим, в таблице имеется 10 записей, при этом у последней записи столбец AUTO_INCREMENT равен 20. Как изменить значение этого столбца ID, чтобы следующая запись имела номер 11?
Это невозможно сделать ни одним из описанных выше методов, но есть другие техники, которые могут иметь сторонние эффекты — поэтому будьте весьма осторожны с ними.
Итак, первый вариант — убрать свойство AUTO_INCREMENT у столбца ID, выполнить запрос для переназначения ID, и затем вернуть AUTO_INCREMENT:
Не нужно знать текущее максимальное значение. Этим способом счётчик автоматического прибавления будет сброшен и запущен автоматически с максимального существующего значения.
Но помните о медленной работе ALTER TABLE для больших таблиц.
Ещё один вариант — полностью удалить столбец id, а затем его вернуть с предыдущими настройками. Все поля внутри таблицы заполняются новыми значениями счётчика.
Помните о том, что:
- все поля внутри таблицы будут посчитаны заново и у них будут другие id
- описанный метод полностью поломает foreign keys
DBCC CHECKIDENT (Transact-SQL)
Применимо к: SQL Server (все поддерживаемые версии) База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics
Проверяет текущее значение идентификатора для указанной таблицы в SQL Server 2019 (15.x) и при необходимости изменяет его. Также инструкцию DBCC CHECKIDENT можно использовать для ручной установки нового текущего значения идентификатора для столбца идентификаторов.
Синтаксические обозначения в Transact-SQL
Синтаксис
Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.
Аргументы
table_name
Это имя таблицы, для которой выполняется проверка текущего значения идентификатора. Указанная таблица должна содержать столбец идентификаторов. Имена таблиц должны соответствовать правилам для идентификаторов. Имена из двух или трех частей должны содержать разделители, например » . » или [ . ].
NORESEED
Указывает, что текущее значение идентификатора не должно изменяться.
RESEED
Определяет, что текущее значение идентификатора должно изменяться.
new_reseed_value
Новое значение, предназначенное для использования в качестве текущего значения для столбца идентификаторов.
WITH NO_INFOMSGS
Подавляет вывод всех информационных сообщений.
Remarks
Конкретные изменения, вносимые в текущее значение идентификатора, зависят от определений параметров.
или диспетчер конфигурации служб
— Если в столбце идентификаторов существуют ограничения PRIMARY KEY или UNIQUE, при выполнении последующих операций вставки в таблицу будет сформировано сообщение об ошибке 2627, потому что созданное значение идентификатора будет конфликтовать с существующими значениями.
Исключения
В следующей таблице перечислены условия, при которых инструкция DBCC CHECKIDENT не будет выполнять автоматический сброс текущего значения идентификатора, а также представлены способы сброса значения.
Изменение начального значения
Начальное значение представляет собой значение, вставляемое в столбец идентификаторов для первой строки, загружаемой в таблицу. Все последующие строки содержат текущее значение идентификатора, увеличенное на значение приращения, где текущее значение идентификатора представляет собой последнее значение идентификатора, сформированное для таблицы или представления.
Инструкцию DBCC CHECKIDENT нельзя использовать для следующих задач:
Изменение исходного начального значения, которое было указано для столбца идентификаторов при создании таблицы или представления.
Повторное указание начального значения для существующих строк в таблице или представлении.
Чтобы изменить исходное начальное значение и повторно задать начальное значение для каких-либо существующих строк, удалите столбец идентификаторов и создайте его повторно, указав новое начальное значение. Если таблица содержит данные, то номера идентификаторов добавляются к существующим строкам с учетом указанного начального значения и приращения. Порядок, в котором выполняется обновление строк, не гарантирован.
Результирующие наборы
В зависимости от того, указали ли вы какие-либо параметры для таблицы, содержащей столбец идентификаторов, инструкция DBCC CHECKIDENT возвращает следующее сообщение для всех операций за исключением одной. Эта операция указывает новое начальное значение.
Checking identity information: current identity value ‘ ‘, current column value ‘ ‘. DBCC execution completed. If DBCC printed error messages, contact your system administrator.
При использовании инструкции DBCC CHECKIDENT для указания нового начального значения с помощью RESEED new_reseed_value возвращается следующее сообщение.
Checking identity information: current identity value ‘ ‘. DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Разрешения
Участник должен быть владельцем схемы, содержащей таблицу, либо участником предопределенной роли сервера sysadmin, предопределенной роли базы данных db_owner или предопределенной роли базы данных db_ddladmin.
Azure Synapse Analytics требует разрешения db_owner.
Примеры
A. Сброс текущего значения идентификатора при необходимости
В следующем примере сбрасывается текущее значение идентификатора (при необходимости) для указанной таблицы в базе данных AdventureWorks2012.
Б. Выдача текущего значения идентификатора
В следующем примере возвращается текущее значение идентификатора из указанной таблицы базы данных AdventureWorks2012. Если значение идентификатора окажется неверным, оно не исправляется.
В. Принудительная установка нового значения текущему значению идентификатора
Следующий пример принудительно устанавливает для идентификатора значение 10 в столбце AddressTypeID для таблицы AddressType . Так как в таблице уже есть строки, в следующей вставляемой строке будет использоваться значение 11, то есть новое текущее значение идентификатора, определенное для столбца, плюс 1 (шаг приращения столбца).
Г. Сброс значения идентификатора в пустой таблице
Следующий пример принудительно задает текущее значение 1 для идентификатора в столбце ErrorLogID таблицы ErrorLog после удаления всех записей из таблицы. Так как в таблице нет существующих строк, следующая вставляемая строка будет использовать в качестве значения 1, то есть новое текущее значение идентификатора, не добавляя приращение, заданное для столбца.