如何在存储过程中的语句中插入数值变量(这是我的尝试):
...
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_name
为nvarchar(50)
,@calc
为numeric(18,2)
。
答案 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')'