Я пишу средство обновления данных SQL для преобразования старых столбцов типа text / ntext / image в varchar / nvarchar / varbinary. Средства обновления запускаются в транзакциях, когда система загружается для обновления базы данных из более старой версии. Я заставил SQL работать самостоятельно, но несколько измененных столбцов были полнотекстовыми, что означает, что я не могу изменить их тип без предварительного удаления индекса, например:
ALTER FULLTEXT INDEX ON Table DROP (Column)<br>
exec dbo.ConvertDataType 'Table', 'Column', 'nvarchar(max)'<br>
ALTER FULLTEXT INDEX ON Table ADD (Column)
Проблема в том, что первая строка не работает в модуле обновления данных из-за ошибки «Оператор ALTER FULLTEXT INDEX нельзя использовать внутри транзакции пользователя» Есть ли способ сделать это в рамках транзакции? Либо заставив этот код работать, либо изменив индекс на новый тип другим способом?