У меня есть БД MS SQL с различными таблицами, и одно поле, в частности, вызывает у меня горе.
Тип данных установлен на varchar (100), однако поле может содержать не более 60 символов.
Если я пытаюсь вставить в поле любую строку, содержащую более 60 символов, я получаю исключение,
"Строка или двоичные данные будут проигнорированы". Хотя строка короче явно заданного типа данных, она все равно выдает исключение.
Возможно, есть настройка БД, которая делает это? Что может вызвать перезапись явно установленного типа данных?
Редактировать:
Триггеры не копируют значение и не вставляют его в другую таблицу, а также не используют данные. - (Неверно)
Строки, которые меньше 60 символов, работают нормально.
Все столбцы, имеющие varchar (100), создают ту же проблему, но все остальные столбцы принимают правильные значения. Колонка varchar (10) работает нормально.
Любая строка в этой таблице вызывает исключение, если я пытаюсь обновить поле строкой длиной более 60 символов.
Я пытаюсь вставить данные непосредственно в поле с помощью SQL Server Management Studio.
Заполнение не включено.
Ответ:
Была вторая таблица, в которой для столбца было задано значение 60. Триггер обновления назывался хранимой процедурой, которая вставляет данные в таблицу «денормализованных».
Спасибо за помощь.