2014-12-02 4 views
0
UPDATE SOP60300 
SET SOP60300.CUSTITEMDESC = IV00101.ITEMDESC 
FROM IV00101 
WHERE IV00101.ITEMNMBR = SOP60300.ITEMNMBR 

Мне нужно ОБНОВИТЬ описания клиентов из описаний изделий. Когда я запускаю сценарий выше, он дает мне сообщение об ошибке ниже. MAX, описание клиента может содержать CHAR 51, а описание элемента - CHAR 101. Я просто хочу вырезать последние 50 CHAR, так что оператор будет работать.Необходимость TRUNCATE данных

Следует отметить, что я использую 2008R2

Msg 8152, Level 16, State 14, Line 2
String or binary data would be truncated.

+1

Какой базы данных? Правильный ответ зависит от поддерживаемого диалекта SQL, что означает, что нам нужно знать, какую базу данных вы используете. Вы должны изменить свой вопрос и добавить дополнительный тег для СУБД. –

ответ

0

Вы можете также использование LEFT. Это эквивалентно SUBSTRING(colName, 1, 1). LEFT Возвращает левую часть символьной строки с указанным количеством символов.

SET SOP60300.CUSTITEMDESC = LEFT(IV00101.ITEMDESC, 50) 

Таким образом, его берут первые 50 символов от значения столбца.

Мне нравится LEFT, так как я нахожу его немного чище, но на самом деле нет никакой разницы в любом случае.

SQL Скрипка в SQL SERVER 2008: - http://sqlfiddle.com/#!3/ad609/1

+0

Это сработало. Я новичок, но я люблю эту работу. Спасибо Piyush –

+0

@John - Отличный человек, хорошо, что я могу вам помочь. – HaveNoDisplayName

-1
SET SOP60300.CUSTITEMDESC = substring(IV00101.ITEMDESC,1,50) 

что-то вроде, что SQL Server ... (примечание держать остальную часть вашего обновления то же самое)

+0

downvoter может объяснить, почему SUBSTR не является правильным ответом.? – Randy

+0

Спасибо, но я нахожусь в SQL 2008R2. substr не будет работать. –

+0

В SQL Server 2008 он выдает ошибку: - «SUBSTR» не является признанным встроенным именем функции. – HaveNoDisplayName