Главная > Категория
На этой странице показанны сообщения из одной категории. Самые новые сверху.

141 месяц назад

Постоянная ссылка Vanav

Категории

MS SQL и ограничение длины строк

На собственном опыте обнаружил странное поведение своего MS SQL сервера. Если в таблицу добавляется значение типа (N)VARCHAR или (N)CHAR, и это значение длиннее ограничения, то текст не обрезался, транзакция не проходила, и IIS вываливался с ошибкой 500, чем вгонял в недоумение админов.

Server: Msg 8152, Level 16, State 9, Line 1
String or binary data would be truncated.
The statement has been terminated.

Выяснилось, что виной этому была опция ANSI_WARNINGS. В документации говорят, она по-умолчанию выключена, но это зависит от настроек конкретного сервера.

Если её выключить, то строки будут сами обрезаться, и запросы будут успешно исполняться.

Есть два способа отключения:

  1. Выполнить в начале запрос: SET ANSI_WARNINGS OFF
  2. Для всех соединений одновременно, используя хранимую процедуру: sp_dboption 'DatabaseName', 'ANSI warnings', 'FALSE'.
Комментировать