2

文字列変数内に条件式を格納していますが、

例えば ​​:

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

4

2 に答える 2

1

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

于 2012-09-28T08:54:35.467 に答える
-1

sp_executesqlを使用して動的 SQL を使用する必要があります。

sp_executesql の使用

[しかし、なぜこれを行う必要があるのか​​を調べます...]

于 2012-09-28T08:36:00.033 に答える