我想用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时出错”的错误。 “。我怎么能解决这个问题?请有人帮助我。
答案 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
查看您尝试使用的数字。