将数字变量插入SQL语句

时间:2013-01-05 11:44:03

标签: sql sql-server-2008

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

...
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已正确定义其列以匹配变量类型。表1有两列:cn类型nvarchar(50)cv类型numeric(18,2)@column_namenvarchar(50)@calcnumeric(18,2)

1 个答案:

答案 0 :(得分: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')'