Вы можете установить свой увеличивающийся столбец, чтобы использовать свойство identity. Затем в процессах, которым нужно вставить значения в столбец, вы можете использовать команду SET IDENITY_INSERT
в вашем пакете.
Для вставок, в которых вы хотите использовать свойство identity, столбец идентификаторов исключается из списка столбцов в инструкции вставки:
INSERT INTO [dbo].[MyTable] ( MyData ) VALUES ( @MyData )
Если вы хотите вставить строки, в которых указывается значение для столбца идентификаторов, используйте следующее:
SET IDENTITY_INSERT MyTable ON
INSERT INTO [dbo].[MyTable] ( DisplayOrder, MyData )
VALUES ( @DisplayOrder, @MyData )
SET IDENTITY_INSERT MyTable OFF
Вы должны иметь возможность ОБНОВИТЬ столбец без каких-либо других шагов.
Вы также можете посмотреть на команду DBCC CHECKIDENT
. Эта команда установит ваше следующее значение идентичности. Если вы вставляете строки, где следующее значение идентификатора может не подходить, вы можете использовать команду для установки нового значения.
DECLARE @DisplayOrder INT
SET @DisplayOrder = (SELECT MAX(DisplayOrder) FROM [dbo].[MyTable]) + 1
DBCC CHECKIDENT (MyTable, RESEED, @DisplayOrder)