0

動的SQLに問題があります。コードの早い段階で、一連のローカル変数にデータを割り当てます。コードの後半でこれらにアクセスし、データ値を使用したいと思います。以下のコード例は、私がやろうとしていることを説明するための簡単な例を示しています。

-- ----------------------------------------------
-- Declare and set the data into a local variable
-- ----------------------------------------------
DECLARE @SD1  real
SET @SD1 = 1.1

-- ----------------------------------------------------------
-- Declare and set a variable to point to data local variable
-- ----------------------------------------------------------
DECLARE @SDName varchar
SET @SDName = '@SD1'

-- ---------------------------------------
-- Declare and set the dynamic SQL command
-- ----------------------------------------
DECLARE @SQLCmd varchar
SET @SQLCmd  = 'SELECT MyNumber = ' + @SDName

このコードを実行すると、@SQLCmdには次のコードが含まれます...

SELECT MyNumber = @SD1

しかし、私が本当に望んでいるのは、@SQLCmdにこれを含めることです...

SELECT MyNumber = 1.1

どうすればこれを達成できますか?

4

3 に答える 3

0
DECLARE @SQLCmd varchar
SET @SQLCmd  = 'SELECT MyNumber = ' + CAST(@SD1 AS VARCHAR)

VARCHARのデフォルトは30文字で、これで十分な大きさになると思います。これをパラメーター化されたクエリにしたい場合は、sp_executesqlを使用して実行し、パラメーター値をに渡すことができます。

于 2009-11-06T19:33:16.593 に答える
0

DECLARE @SD1  real
    SET @SD1 = 1.1

DECLARE @SQLCmd nvarchar
    SET @SQLCmd = 'SELECT MyNumber = CAST(@SDName AS varchar)'

EXEC sp_executesql @SQLCmd, N'@SDName real', @SD1
于 2009-11-06T19:35:10.640 に答える