函数用错了
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 #