游标中提交动态更新语句,更新结果字段竟然少了最前面的0,为什么啊???真怪,!!!!
以下为代码:
... ------------ (略去其他行)
set @str_zsbh_last_six=0+@str_zsbh_last_six
print @str_zsbh_last_six ----运行到这里时候,该变量为
declare @zsbh_enter nvarchar(50)
set @zsbh_enter= @str_zsbh+@str_zsbh_last_six
print @zsbh_enter----运行到这里时候,该变量为050900012334
exec(UPDATE + @excelName
+ SET zsbh=+convert(nvarchar(12),@zsbh_enter )
+ WHERE CURRENT OF cEvent ) --------更新完毕后,数据库表的zsbh字段 为50900012334,数据库表里该字段的定义为nvarchar(50)
end
FETCH NEXT FROM cEvent into @user_id,@IDcode,@zsbh
end
close cEvent
DEALLOCATE cEvent
对字符类型的列赋值是需要加号的。动态语句中需要号的用两个代替.
以防止引起数据的未知的变化。