Вот первый запрос:
Код: Выделить всё
SELECT * FROM #ids_temp WITH (NOLOCK) WHERE backupid = N'4dd31554df67d8503fba000945fbe02a' AND itemname = N'user'
Второй запрос аналогичен первому:
Код: Выделить всё
SELECT 'x' FROM #ids_temp WITH (NOLOCK) WHERE backupid = N'4dd31554df67d8503fba000945fbe02a' AND itemname = N'userfinal' AND itemid = '3' ORDER BY 1 OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY
Я попробовал переписать PHP-скрипт, чтобы он вызывал sqlsrv_free_stmt после первого запроса и до запуска второго, чтобы снять блокировку временного файла. стол. Однако я заметил, что та же проблема возникает и в других областях кода. Приложение PHP изначально было написано для базы данных MySQL и прекрасно работает в такой среде. Поэтому вместо того, чтобы пытаться найти каждый экземпляр кода, предназначенного для запуска без блокировок во временных таблицах, кажется, лучше настроить поведение базы данных в соответствии с кодом.
Подробнее здесь: https://stackoverflow.com/questions/781 ... -in-tempdb
Мобильная версия