Как получить автоматически сгенерированные идентификаторы INT для столбца в хранилище данных SQL Azure

Я знаю, что IDENTITY не поддерживается в хранилище данных SQL Azure, но есть ли другой способ автоматически присвоить значение INT столбцу при вставке таким же образом?


person hirokibutterfield    schedule 14.09.2016    source источник


Ответы (1)


Что вы можете сделать, так это начать с получения Max RowId из таблицы, затем в операторе select из вашего источника использовать оператор row_number() для генерации номера строки, а затем просто добавить MaxRowId в row_number для создания последовательных серий RowId,

DECLARE @MaxRowId int
SET @MaxRowId = (SELECT ISNULL(MAX(RowId),0) FROM dbo.MyTable)


INSERT INTO MyTable (RowId, col1, col2)
SELECT
ROW_NUMBER() OVER(ORDER BY [col1]) + @MaxRowId RowId
, [col1]
, [col2]
FROM dbo.MySourceTable
person hirokibutterfield    schedule 14.09.2016