sql存储过程拼接字符动态插入数据

问题是  我需要像数据库指定表名的表中插入带参数据  建的存储过程,里面用拼接字符串 可是一直拼接的不对,求指点。

我数据库的代码

create proc Proc_InsertdataTable
(
	@tablename varchar(40),
	@datanum int,
	@result varchar(2),
	@datasize float
)
as
declare @temp varchar(200)
set @temp = 'insert into '+@tablename+'(Data_Num,Result_txt,Data_size) values ('+@datanum+','+@result+','+@datasize+')'
exec(@temp)
go


exec Proc_InsertdataTable @tablename='设备10SH65465',@datanum=3,@result='NG',@datasize=10.021

上述执行存储过程  提示 

消息 245,级别 16,状态 1,过程 Proc_InsertdataTable,行 10 [批起始行 17]
在将 varchar 值 'insert into 设备10SH65465(Data_Num,Result_txt,Data_size) values (' 转换成数据类型 int 时失败。

试了挺多的写法 都不正常。

 

你输出出来看看是不是语法问题,比如关键字之间没有空格