0

我想用 nvarchar 字段更新 bigint 字段。所以,我写了这个查询。

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 时出错。”的错误。我该如何解决这个问题?请任何人帮助我。

4

1 回答 1

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

看看你想用什么作为数字。

于 2013-10-08T14:26:44.933 回答