Короткая версия: нет, это невозможно.Если цикл достаточно плотный, SysDateTime
вернет одно и то же значение для более чем одной итерации цикла.
Длинная версия:
SysDateTime()
возвращаеттекущая дата и время в виде DateTime2(7)
.
. Получает текущие значения даты и времени, используя GetSystemTimeAsFileTime()
функцию win-api.
Это означает, что даже если он возвращает DateTime2
с точностью до 100 наносекунд, Фактическая точность возвращаемого значения зависит от аппаратного обеспечения компьютера и версии Windows, на которой работает экземпляр SQL Server.
Я предполагаю, что на компьютере, который может получить очень точные результаты от этого выигрыша-api и, тем не менее, выполнять медленные циклы в SQL, вы можете получить уникальные идентификаторы в цикле. Однако я даже не мог догадаться, какое оборудование, версия Windows и общие настройки вам понадобятся (или, если это вообще возможно).
Начиная с версии 2012 года, лучший способ создать уникальное значение bigint, не зависящее от вставки в таблицу, - это использовать sequence
.