Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Область применения: SQL Server
Сведения
| Атрибут | Значение |
|---|---|
| Название продукта | SQL Server |
| ИД события | 3989 |
| Источник событий | MSSQLSERVER |
| Компонент | SQLEngine |
| Символическое имя | XACT_UNSUPPORT_PARALLEL_TRAN3 |
| Текст сообщения | Не допускается запуск нового запроса, так как запрос должен содержать допустимый дескриптор транзакции. |
Описание
Эта ошибка возникает при выполнении распределенного запроса, присоединенного к нескольким таблицам, размещенным удаленными экземплярами SQL Server, в то время как XACT_ABORT параметр сеанса включен. Пользователю выводится сообщение об ошибке наподобие следующего:
Сообщение 3989, уровень 16, состояние 1, строка
Не допускается запуск нового запроса, так как запрос должен содержать допустимый дескриптор транзакции.
Причина
Существуют некоторые ограничения проектирования в том случае, когда SQL Server обрабатывает распределенные запросы (DQs), если выполняются следующие условия:
- SQL Server объединяет несколько таблиц одного удаленного источника данных SQL Server.
- Сеанс, выдающий запрос, не указан в распределенной транзакции.
В этом случае попытка выполнить запрос может вызвать одну из двух ошибок, упомянутых в разделе Пояснения.
Действие пользователя
Чтобы устранить эту ошибку, заключите распределенный запрос в инструкцию начала распределенной транзакции:
BEGIN DISTRIBUTED TRANSACTION
/*The actual Distributed Query goes next, outside of comments*/
COMMIT TRANSACTION