SQL 存储过程 出错: 从数据类型 nvarchar 转换为 float 时出错。

2025-02-23 15:03:57
推荐回答(1个)
回答1:

函数用错了
str是 返回从数字数据转换而成的字符数据。而你声明的是nvarchar,并且传入的参数是'41e620ee-b34c-499c-b0e6-fc454583e63f',我想你的意思是想转换成字符型数据吧
将str(@StartNum) 替换成cast (@ChannelID as nvarchar)。
create table #(f float, i int)

declare @f float, @i int, @sql nvarchar(1000)
select @f = 1.3, @i = 13
set @sql = 'insert into # values(@f, '+convert(varchar,@i)+')'
exec sp_executesql @sql, N'@f float', @f

select * from #
/*
f i
---------------------- -----------
1.3 13
*/

drop table #