String or binary data would be truncated

mubarak
Дата: 21.06.2011 14:34:04
Помогите, срочно нужна помощь. Ситуация в следующем. Имеется база, первоначально созданная на 2000, при этом collation создатель не глядя оставил Latin1_General_CI_AS, соответственно все русские varchar'ы хранились в виде кракозябр, но конечная программа клиент это не замечала, она писала и она же читала. Collation базы создатель поменял на Cyrillic_General_CI_AS, а столбцы остались в Latin1_General_CI_AS.

Впоследствии ее перенесли на EXPRESS с collation на уровне сервера Cyrillic_General_CI_AS аттачем, после чего она спокойно там жила, программа продолжала работать по-старому.

Затем понадобилось перенести на другой EXPRESS. Раскатали точно такой же с таким же кириллическим COLLATION, приаттачили базу, все параметры серверов одинаковые, но теперь при вставке русских букв выдает String or binary data would be truncated.

Понимаю, что изначально конфигурация убогая, но в чем может быть причина того, что на исходном экспрессе все работает, а на новом такое....
mubarak
Дата: 21.06.2011 14:45:29
Единственное отличие - на исходном Windows русская, а на новом английская, но языковые настройки и там и там одинаковые - русские. Уже не знаю, на что думать
Гавриленко Сергей Алексеевич
Дата: 21.06.2011 14:45:38
У ошибки "String or binary data would be truncated" причина одна - вы пытаетесь вставить в поле больше данных, чем туда влезает.
Ищите падающие запросы, и разбирайтесь, почему данные вдруг перестали помещаться в таблицы.
mubarak
Дата: 21.06.2011 14:54:37
Гавриленко Сергей Алексеевич,

Программа не может ни с того ни с сего начать вставлять данные большего размера чем раньше. Все изменения - это перенос базы содного сервера на другой. При переносе обратно на старый вставки работают, но это не вариант, потому что сервер загибается, и с него надо слезть.
mubarak
Дата: 21.06.2011 14:55:35
Уточняю - ввод данных не ручной, а автоматический
Гавриленко Сергей Алексеевич
Дата: 21.06.2011 14:58:27
Интересно, а сколько еще отговорок вы сможете придумать, чтобы не лезть и не выяснять ваши кривые запросы и/или таблицы?
mubarak
Дата: 21.06.2011 15:09:09
Гавриленко Сергей Алексеевич,

Запросы не мои, и они не кривые. Это автоматическая система контроля доступа. Включите логику. Я могу повторить - при возврате на исходный сервер все работает.
mubarak
Дата: 21.06.2011 15:11:02
mubarak,

Таблицы кривые, но их создавал не я. Вы сразу начали, априорно полагая, что дебил, и не понимаю смысла ошибки, поверьте, для этого у меня ума достаточно. Если нечего предложить конструктивно, не хамите.
Гадя Петрович
Дата: 21.06.2011 15:14:55
вставьте данные во временную таблицу и сравните максимальные длины полей
Maxx
Дата: 21.06.2011 15:16:20
как вариант у вас где числа храняться как строки, и вы вставлете число которое допустим влазит в тип данных - но уже не влазит в строку и получаете ошибку