文字列変数内に条件式を格納していますが、
例えば :
declare @x int=501,@y int=0,@str varchar(max)
set @str='if @x > 500 set @y=1000 else set @y=500'
SQL Server 2008
この文字列を計算して、ストアドプロシージャ内から結果を取得する方法を教えてもらえますか?
前もって感謝します
SD
文字列変数内に条件式を格納していますが、
例えば :
declare @x int=501,@y int=0,@str varchar(max)
set @str='if @x > 500 set @y=1000 else set @y=500'
SQL Server 2008
この文字列を計算して、ストアドプロシージャ内から結果を取得する方法を教えてもらえますか?
前もって感謝します
SD
sp_executesql が必要ですが、特に変数の受け渡しと値の取得に関して、いくつかのニュアンスがあります。
declare @x int=501,@y int=0,@str Nvarchar(max)
set @str='if @x > 500 set @y=1000 else set @y=500'
exec sp_executesql @str, N'@x int, @y int output', @x, @y output
select @y
-- result
1000
@str が NVARCHAR として再定義されていることに注意してください。sp_executesql は、クエリが NVARCHAR であることを想定しています。
2 つ目の注意点は、呼び出しoutput
内で値を変更しておく必要がある変数に対して、句を 2 回使用する必要があることです。sp_executesql