2017-12-11 16 views
1

2つのテーブル名と10進数で呼び出すストアドプロシージャを作成しようとしています。SQL ServerのストアドプロシージャをFloatパラメータで使用して小数点を渡す

私のストアドプロシージャは、各テーブルの行数を比較して、%差があるかどうかを調べます。差がしきい値より大きい場合は、1つのテーブルを空にして、もう一方のテーブルからデータをコピーします。

私は、ストアドプロシージャを作成することができていますが、私はそれを呼び出すようにしようとしたとき、私はエラーを取得する:

Incorrect syntax near '/'

コード私のストアドプロシージャの:セットアップaにあなたが必要

CREATE PROCEDURE test 
    @table_name_one NVARCHAR(MAX), 
    @table_name_two NVARCHAR(MAX), 
    @threshhold FLOAT(53) 
AS 
BEGIN 
    SET NOCOUNT ON; 

    SELECT @table_name_one 
END 
GO 

EXEC test @table_name_one = 'a', @table_name_two = 'b', @threshhold = 1./3 

答えて

1

変数を以下のように渡します。パラメータに渡して何かを計算することはできません。

DECLARE @th FLOAT = 1.0/3; 

EXEC test 
    @table_name_one = 'a' 
    , @table_name_two = 'b' 
    , @threshhold = @th; 
+0

サブクエリではありませんか? – IMTheNachoMan

+1

いいえ、私の頭の上からは考えられない例外がいくつかありますが、通常は次のようにパラメータを渡します:[] [] @p1 = '値'、@ p2 = @変数。 ..等。 –

関連する問題