У меня есть кластерный индекс по нескольким полям. Одним из этих полей является CustomerID. У меня есть курсор, который читает из этой таблицы, а затем обновляет CustomerID. Проблема в том, что это вызывает бесконечный цикл. Я предполагаю, что при изменении поля customerid кластеризованный индекс изменяется, и таблица реструктурируется для индекса. Кажется, эта модификация делает недействительным мой курсор, поэтому курсор FETCH NEXT FROM никогда не достигает конца.
FETCH NEXT FROM AccountSoftwareRegCursor
INTO @CurrentAccountSoftwareRegUId
WHILE (@@FETCH_STATUS = 0)
BEGIN
UPDATE
Licensing.AccountSoftwareRegistration
SET
AccountUid = @ToAccountUid,
CompanyId = @ToCompanyId,
UpdatedBy = isnull(@UpdatedBy,'Asset Transfer'),
UpdatedByAccount = @UpdatedByAccount,
UpdatedOn = GETUTCDATE()
WHERE
AccountSoftwareRegUid = @CurrentAccountSoftwareRegUId
Можно ли выполнить какую-либо команду, чтобы таблица не обновляла таблицу для кластеризованного индекса до тех пор, пока курсор не завершит работу?