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 にはcn、 typenvarchar(50)cvtypeの 2 つの列がありますnumeric(18,2)@column_nameです。nvarchar(50)_ @calc_numeric(18,2)

4

1 に答える 1

2

数値を aにキャストする必要があります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 に答える