У меня есть хранимая процедура, которая вставляет 650 полей в таблицу. Вставка не выполняется с ошибкой усечения.
Это просто
INSERT INTO
SELECT (a bunch of fields)
FROM (a bunch of tables)
Ниже приведено сообщение об ошибке:
Сообщение 8152, уровень 16, состояние 14, процедура DSP_Procedure, строка 1075 Строка или двоичные данные будут обрезаны.
Есть ли быстрый способ определить, какое поле вызывает ошибку усечения?
Тот факт, что оператор выбора для вставки в таблицу имеет 650 полей, затрудняет точное определение того, какое поле вызывает ошибку усечения.
Я думаю, что я могу, возможно, закомментировать блоки полей за один раз, чтобы SP вставлял только 100 полей за раз, а затем запускал SP 6 или 7 раз, пока я, по крайней мере, не смог сузить группу из 100 полей. это будет содержать поле, которое вызывает ошибку усечения.
В качестве альтернативы я думаю, что, возможно, я могу просто SELECT INTO
создать новую таблицу, а затем сравнить длины данных в таблице с длинами данных целевой таблицы, в которую я пытаюсь вставить свой SP, чтобы увидеть, какое поле содержит длину, превышающую ожидаемую. ..
Я использую SQL Server 2014.
Есть ли более простые альтернативы?