Я использую столбцы идентификаторов в качестве первичного ключа в моих таблицах.
В некоторых ситуациях мне нужно работать с первичными ключами перед вставкой новой строки.
Например, в Oracle Iиспользуйте: select <sequence_name>.nextval into <variable> from dual
и я был уверен, что никто не вставит ни одной строки с тем же идентификатором во время выполнения моего sp.
Что касается SQL Server, я могу прочитать текущее значение идентификатора и его приращение, но естьнет способа увеличить его без вставки строки.
Обновлено: Вопрос в том, как мне выполнить задачу по работе с идентификатором (в качестве столбца идентификаторов) в SQL Server перед вставкой строки и быть уверенным, что она будетбыть уникальным в конце моей хранимой процедуры.
Обновлено: у меня есть таблица со столбцом HierarchyId. Способ формирования первого уровня иерархии, в моем случае, заключается в вставке столбцаierarchyId в соответствии со столбцом идентификаторов.Вот как я это сделал сейчас:
begin transaction
insert into [dbo].[Group](GroupTypeId,CompanyOwnerId,GroupHierarchyId)
values(@GroupTypeId,@HeaderCompanyId,null)
update [dbo].[Group]
set GroupHierarcyId=hierarchyid::GetRoot().GetDescendant(cast ('/'+cast(@NewGroupId as varchar)+'/' as hierarchyid),null)
where GroupId=scope_identity()
commit