В моем USP я создаю временные таблицы и генерирую для них идентификаторы для последующего использования. Требование моего проекта заключается в том, что мне нужно создать эти идентификаторы. Мой sql, где я делаю временную таблицу и генерирую уникальный идентификатор для каждой записи, выглядит примерно так:
SELECT DISTINCT pqt.fkJID,
pqt.FirstDatabaseID,
pqt.pqtPackageID,
RowId = RIGHT('000000' + Ltrim(Str(Row_number() OVER (ORDER BY pqt.fkJID, pqt.fkFirstDatabaseID))), 6)
INTO #PQTIDs
FROM PackageRecord pqt WITH (nolock)
INNER JOIN #CQTIDs cqtS
ON cqtS.fkJID = pqt.fkJID
AND cqtS.FirstDatabaseID = pqt.fkFirstDatabaseID
Как видите, для временной таблицы #PQTID я генерирую идентификатор, используя следующую строку:
RowId = RIGHT('000000' + Ltrim(Str(Row_number() OVER (ORDER BY pqt.fkJID, pqt.fkFirstDatabaseID))), 6)
Теперь мой вопрос: есть ли другой способ, с помощью которого я могу генерировать уникальные идентификаторы последовательных записей для записей моей временной таблицы? Потому что я думаю, что когда я генерирую идентификаторы таким образом, это занимает много времени. Также, пожалуйста, скажите, влияет ли создание временных таблиц на производительность. Есть ли другой способ оптимизировать это?