Skip to content

Как узнать последнее значение, используемое последовательностью в SQL Server

Пересказ статьи Greg Low. How to determine the last value used by a sequence in SQL Server


Я являюсь фанатом последовательностей с тех пор, когда они появились в SQL Server 2012. До этого у разработчиков был выбор между столбцами IDENTITY и создания собственного механизма для таблиц.

Что такое последовательности в SQL Server?


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

Например, если у меня есть таблицы Sales.FlightBookings и Sales.VehicleBookings, и я хочу иметь общий BookingID, используемый как ключ для каждой таблицы. Если бы речь шла не только о BookingID, вы могли бы возразить, что существует проблема с нормализацией таблиц, но мы оставим это обсуждение на будущее. Continue reading "Как узнать последнее значение, используемое последовательностью в SQL Server"

IDENTITY или SEQUENCE в SQL Server – что использовать?

Пересказ статьи Greg Low. IDENTITY vs SEQUENCE in SQL Server – which should you use?


Автоматически генерируемые числовые ключи имеются повсюду в реляционных базах данных. В SQL Server доминируют две возможности этого:


Обе генерируют числа. Обе быстры. Обе широко используются. Хотя в настоящее время столбцы IDENTITY являются, безусловно, наиболее распространенными - однако при работе с клиентами мы склонны использовать почти исключительно объекты SEQUENCE. Все, что я могу сделать со столбцом IDENTITY, я могу так же сделать с объектом SEQUENCE, но мы считаем его более гибким.

Вот простой пример. Если вы когда либо пытались выполнить SET IDENTITY_INSERT ON по связанным серверам, то знаете, что это не работает. С SEQUENCE мне никогда не понадобится выполнять такую операцию.
Continue reading "IDENTITY или SEQUENCE в SQL Server – что использовать?"