1

如何在存储过程中的语句中插入数值变量(这是我的尝试):

...
declare @SQL1 nvarchar(1500)
declare @calc numeric(18,2)
Set @calc = 18.00
SET @SQL1= 'insert into Table1(cv) values(' + @calc + ')' 

我在最后一行得到的错误是:

将数据类型 varchar 转换为数字时出错。

如果我插入如下类型的变量nvarchar

SET @SQL1= 'insert into Table1(cn) values(''' + @column_name + ''')' 

它就像一个魅力 - 但不是当我尝试在第一个示例中插入一个数字字段时。谢谢!

PS:表 Table1 已正确定义其列以匹配变量类型。Table1 有 2 列:cnof typenvarchar(50)cvof type numeric(18,2)@column_namenvarchar(50)@calcnumeric(18,2)

4

1 回答 1

2

您需要您的数字转换为nvarchar- 试试这个:

declare @SQL1 nvarchar(1500)
declare @calc numeric(18,2)

Set @calc = 18.00

SET @SQL1 = N'insert into Table1(cv) values(' + CAST(@calc AS NVARCHAR(10)) + N')' 
于 2013-01-05T11:47:25.607 回答