2013-09-11 4 views
0

Я хочу обновить поле bigint полем nvarchar. Итак, я пишу этот запрос.Ошибка преобразования типа данных nvarchar в bigint в sql server 2005

update table1 
set convert(bigint,table1.No)=convert(bigint,substring(table_2.Desc,21,50)) 
from table1 
inner join table_2 on table1.ID=table_2.ID 

SQL Server показывает ошибку, как этот "Ошибка преобразования данных типа NVARCHAR в BigInt. ". Как я могу исправить эту проблему? Пожалуйста, помогите мне.

+0

Вы не можете обновить выражение. Также 'substring (table_2.Desc, 21,50)' возвращает неконвертируемый результат в любой строке. –

ответ

0

Ваше выражение CONVERT на левой стороне SET не является необходимым. Вы должны делать только

update table1 
set table1.[No]=convert(bigint,substring(table_2.[Desc],21,50)) 
from table1 
inner join table_2 on table1.ID=table_2.ID 

«ошибка преобразования типа данных NVARCHAR в BigInt.» Сообщение об ошибке означает, что выражение в convert не может быть преобразовано в BIGINT, вероятно, потому, что это не правильно отформатирован номер. Вы уверены, что ваши аргументы 21,50 верны? Знаете ли вы, что последний аргумент substring должен быть длиной подстроки, а не индексом символа конца? Попробуйте позвонить по телефону

select substring(table_2.[Desc],21,50) from table_2 

, чтобы узнать, что вы пытаетесь использовать в качестве цифр.

Смежные вопросы