動的SQLを使用しようとしています。100 以上のパラメーターを生成しましたが、速度を上げるために、動的 SQL を使用して、他のテーブルから取得した情報に基づいてテーブルに値を挿入するだけにしようとしています。キャストを追加するなど、多くのことを試しました。
私が意味するものの例:
DECLARE @var1 NVARCHAR(MAX)
-- Loop through and add various values
SET @var1 = @var1 + @parameterName
-- The parameter name is retrieved from a table that holds this information
問題は、「@myFirstParameter」のようなパラメーター名を最終式に追加すると、次のようになることです。
DECLARE @finalString NVARCHAR(MAX)
SET @finalString = 'INSERT INTO myTableName ([myFirstParameter]) VALUES (@myFirstParameter)'
EXEC(@finalString)
「@myFirstParameter」はその値に置き換えられず、次のエラーが発生します。スカラー変数「@myFirstParameter」を宣言する必要があります。
パラメータの文字列名から実際の値に移動する方法を知っている人はいますか? 私はすべての値をハードコーディングすることを避けようとしていますが、私が試みた回避策はすべて失敗し、上で述べたものよりもはるかに悪いように見えるエラーが発生しました。