在sql server 2005中将数据类型nvarchar转换为bigint时出错

时间:2013-09-11 08:27:42

标签: sql-server-2005

我想用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时出错”的错误。 “。我怎么能解决这个问题?请有人帮助我。

1 个答案:

答案 0 :(得分: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

查看您尝试使用的数字。