powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / "String or binary data would be truncated." Как узнать что конкретно?
6 сообщений из 6, страница 1 из 1
"String or binary data would be truncated." Как узнать что конкретно?
    #32021842
Илья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стандартная ситуация - при запросе вставки данные в каком-то поле обрезаются. Соответственно мне необходимо увеличить размер некоего поля. Но дело в том что в запросе таких полей сотни полторы (вот так получилось - не от меня зависит), а MS SQL весьма немногословен. Вопрос: как можно БЫСТРО узнать в каком КОНКРЕТНО поле происходит обрезание?
Заранее благодарен.
...
Рейтинг: 0 / 0
"String or binary data would be truncated." Как узнать что конкретно?
    #32021845
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вставляется одна запись, то проще всего после insert'а проверить реальную длину строковых полей для этой записи. Там, где она равна объявленной в таблице, наиболее вероятно произошло усечение.
...
Рейтинг: 0 / 0
"String or binary data would be truncated." Как узнать что конкретно?
    #32021863
Inna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычно я делаю Select Max(Len(Поле_1)),..., Max(Len(Поле_N)) FROM <то, что нужно вставить>
Потом сравниваю с фактической длиной полей в таблице, в которую вставляются данные.
...
Рейтинг: 0 / 0
"String or binary data would be truncated." Как узнать что конкретно?
    #32021881
Илья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я немного неполно выразился. Дело в том что вставка данных происходит по одной записи. Вот пример запроса на вставку:

INSERT INTO PROPERTY(MLSID,[LAPID],[MLSNO],[COUNTY-ID],[APNO],[STAT],[STRNO],[STREET],[CITY],[ZIP],[CRSTS],[PRICE],[AREA],[MAPBK],[TGNO],[CENSUSTR],[ACRES],[LSQFT],[BEDRMS],[BATHS],[YRBLT],[TNAME],[TYPE],[STORIES],[OCCNM],[OCCPHAREA],[SOCOMP],[SHOW],[LSTDT],[TENYN],[POSS],[TYPAG],[LDR],[ADOM],[LOFNM],[LAGNM],[LOFNOAREA],[LOFNO],[VOICEAREA],[FAXAREA],[FAX],[LAGPHAREA],[LAGPH],[COLAGPHAREA],[EMAIL],[TRANDATE])
VALUES ('CASAC','SNATZJAM','S2201172','SA','115-0640-086-0000','A',8237,'VISALIA WAY','SACRAMENTO',95828,'AUBERRY',162000,10828,'T','338D6',.00,.120,'5357 SQ FT',3,2,1987,'COUNTRYSIDE','OTHER','1-ST','VACANT',916,'3','VA-LB','01/21/02','N','AGREE','ER','01/22/02',10,'RE/MAX CENTRAL','JIM NATZ',916,'498-7575',916,916,'498-7887',916,'498-7575',916,'JIM@JIMNATZ.COM','01/28/02')

MS SQL сервер на запрос отвечает:

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

А всего в таблице около двух сотен полей. Таким образом перебирать все поля и выяснять какое там поле оказалось маленьким тяжело. Как-нибудь можно заставить самого MS SQL сказать какое поле ему не нравится?
...
Рейтинг: 0 / 0
"String or binary data would be truncated." Как узнать что конкретно?
    #32021893
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Скопируйте текст в QA
3. При помощи Replace замените в первой строке "," на "'), COL_LENGTH ( 'PROPERTY' , '"
3. При помощи Replace замените во второй строке "," на "), datalength("
4. Замените INSERT и VALUES на SELECT
5. Можно ещё вывести список полей и значений.

Далее просматриваете список и ищете отличия...
...
Рейтинг: 0 / 0
"String or binary data would be truncated." Как узнать что конкретно?
    #32021898
Илья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем огромное спасибо, очень помогло.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / "String or binary data would be truncated." Как узнать что конкретно?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]