Бортовой журнал Ктулху

В MS SQL 2019 добавили указание поля, в котором происходит ошибка если данные превышают размер поля

Breaking news, конечно, но, может, кто-то еще не знал.

Но в MS SQL наконец-то добавили важную информацию при возникновении ошибки "Символьные или двоичные данные могут быть усечены. Выполнение данной инструкции было прервано". Теперь в ошибке будет выводиться название поля, в котором произошла ошибка.

S5EokqxKxDhG

Допустим, у вас есть таблица Users, в которой есть столбец Name с ограничением на максимальную длину в 50 символов. Если вы попытаетесь выполнить операцию вставки, обновления или другую операцию, которая приведет к нарушению этого ограничения, SQL Server вернет сообщение об ошибке, указывающее на конкретный столбец, в котором возникла проблема.

Вот пример запроса на вставку данных с ошибкой:


INSERT INTO Users (Name, Age) VALUES ('John Doe with a very long name that exceeds 50 characters', 30)


Если поле Name имеет ограничение длины 50 символов, а вставляемое значение имеет длину больше 50 символов, SQL Server вернет сообщение об ошибке с указанием столбца, в котором произошла ошибка:


String or binary data would be truncated in table 'Users', column 'Name'. Truncated value: 'John Doe with a very long name that exceeds 50 characters'.


Это сообщение говорит о том, что данные строки или двоичного типа будут усечены в таблице 'Users', в столбце 'Name', и указывает на то, что вставленное значение ('John Doe with a very long name that exceeds 50 characters') будет усечено из-за превышения максимальной длины столбца.

Таким образом, вы можете определить, в каком конкретно столбце возникла ошибка, и скорректировать данные соответственно.

Всего-то лет 20 прошло. Майки в своих традициях.