У меня была такая же проблема, даже после увеличения размера проблемных столбцов в таблице.
tl; dr: Длина соответствующих столбцов в соответствующих типах таблиц также может потребоваться увеличить.
В моем случае ошибка исходила от службы экспорта данных в Microsoft Dynamics CRM, которая позволяет синхронизировать данные CRM с БД SQL Server или Azure SQL.
После продолжительного расследования я пришел к выводу, что служба экспорта данных должна использовать Табличные параметры :
Вы можете использовать табличные параметры для отправки нескольких строк данных в инструкцию Transact-SQL или подпрограмму, такую как хранимая процедура или функция, без создания временной таблицы или множества параметров.
Как видно из документации, приведенной выше, типы таблиц используются для создания процедуры приема данных:
CREATE TYPE LocationTableType AS TABLE (...);
CREATE PROCEDURE dbo.usp_InsertProductionLocation
@TVP LocationTableType READONLY
К сожалению, нет способа изменить тип таблицы, поэтому его необходимо полностью удалить. Поскольку в моей таблице более 300 полей (?), я создал запрос, чтобы облегчить создание соответствующего типа таблицы на основе определения столбцов таблицы (просто замените [table_name]
на имя вашей таблицы):
SELECT 'CREATE TYPE [table_name]Type AS TABLE (' + STRING_AGG(CAST(field AS VARCHAR(max)), ',' + CHAR(10)) + ');' AS create_type
FROM (
SELECT TOP 5000 COLUMN_NAME + ' ' + DATA_TYPE
+ IIF(CHARACTER_MAXIMUM_LENGTH IS NULL, '', CONCAT('(', IIF(CHARACTER_MAXIMUM_LENGTH = -1, 'max', CONCAT(CHARACTER_MAXIMUM_LENGTH,'')), ')'))
+ IIF(DATA_TYPE = 'decimal', CONCAT('(', NUMERIC_PRECISION, ',', NUMERIC_SCALE, ')'), '')
AS field
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = '[table_name]'
ORDER BY ORDINAL_POSITION) AS T;
После обновления типа таблицы служба экспорта данных снова заработала правильно! :)