Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Узнать явно для какого поля ошибка 'String or binary data would be truncated.'  [new]
Джибс
Member

Откуда: 🐾🐾🐾🐾🐾🐾
Сообщений: 45860
Это возможно ?
А то 255 полей и записей около 300 тысяч. из другово источника.

При попытке вставить ругаеться.
Да, это правильно, не должно быть длинных строк.
Если есть, это косяк при заполнении внещней таблицы данными.

Но сложно достаточно искать где криво введены данные. :(
10 авг 09, 15:51    [7518272]     Ответить | Цитировать Сообщить модератору
 Re: Узнать явно для какого поля ошибка 'String or binary data would be truncated.'  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33339
Блог
)))
вставляете select...into-скриптом в новую таблицу, затем sp_help для 2х таблиц и смотрим-сравниваем, можно с помощью экселя)
10 авг 09, 16:17    [7518470]     Ответить | Цитировать Сообщить модератору
 Re: Узнать явно для какого поля ошибка 'String or binary data would be truncated.'  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Можно динамически сформировать запрос из JOINа таблицы-источника и целевой таблицы,
причём для полей строкового типа добавить условие в WHERE
(LEN(ИмяПоляИсточника)>COL_LENGTH(N'ИмяЦелевойТаблицы',N'ИмяЦелевогоПоля') OR ... LEN(ДругоеИмяПоляИсточника)>COL_LENGTH(N'ДругоеИмяЦелевойТаблицы',N'ДругоеИмяЦелевогоПоля') OR ...)
Так и узнаете, что серверу не нравится.
С помощью CASEов в SELECTе можно точно и "нехорошие" колонки узнать, раз их там так много
10 авг 09, 16:23    [7518521]     Ответить | Цитировать Сообщить модератору
 Re: Узнать явно для какого поля ошибка 'String or binary data would be truncated.'  [new]
Джибс
Member

Откуда: 🐾🐾🐾🐾🐾🐾
Сообщений: 45860
Чет недогодался, буду


сделю инсерт инто, затем по колонком max(len(...))
И проверю, максимульню длинну по содержимому.
тормас я :))
10 авг 09, 16:27    [7518549]     Ответить | Цитировать Сообщить модератору
 Re: Узнать явно для какого поля ошибка 'String or binary data would be truncated.'  [new]
Джибс
Member

Откуда: 🐾🐾🐾🐾🐾🐾
Сообщений: 45860
iap
Можно динамически сформировать запрос из JOINа таблицы-источника и целевой таблицы,
причём для полей строкового типа добавить условие в WHERE
(LEN(ИмяПоляИсточника)>COL_LENGTH(N'ИмяЦелевойТаблицы',N'ИмяЦелевогоПоля') OR ... LEN(ДругоеИмяПоляИсточника)>COL_LENGTH(N'ДругоеИмяЦелевойТаблицы',N'ДругоеИмяЦелевогоПоля') OR ...)
Так и узнаете, что серверу не нравится.
С помощью CASEов в SELECTе можно точно и "нехорошие" колонки узнать, раз их там так много


Взял на заметку, спасибо.
10 авг 09, 16:31    [7518576]     Ответить | Цитировать Сообщить модератору
 Re: Узнать явно для какого поля ошибка 'String or binary data would be truncated.'  [new]
Сергей Мишин
Member

Откуда:
Сообщений: 376
iap,
только вместо LEN - DATALENGTH -)
10 авг 09, 16:37    [7518616]     Ответить | Цитировать Сообщить модератору
 Re: Узнать явно для какого поля ошибка 'String or binary data would be truncated.'  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Сергей Мишин
iap,
только вместо LEN - DATALENGTH -)
Тогда для юникодных полей не забывать делить на 2
10 авг 09, 17:45    [7519011]     Ответить | Цитировать Сообщить модератору
 Re: Узнать явно для какого поля ошибка 'String or binary data would be truncated.'  [new]
Джибс
Member

Откуда: 🐾🐾🐾🐾🐾🐾
Сообщений: 45860
iap
Сергей Мишин
iap,
только вместо LEN - DATALENGTH -)
Тогда для юникодных полей не забывать делить на 2


Да, это я сразу понял. ))
всмусле меня этим уже не напугать ))
10 авг 09, 17:53    [7519058]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить