T-SQLで変数の割り当てとデータ取得操作を組み合わせる方法
-
04-07-2019 - |
質問
明確にするために、Sybase 12.5.3を実行していますが、これはSQL Server 2005にも当てはまると思われます。基本的に、私は次のようなクエリを作成しようとしています。問題を強調するために可能な限り単純化しています:
DECLARE @a int, @b int, @c int
SELECT
@a = huzzah.a
,@b = huzzah.b
,@c = huzzah.c
FROM (
SELECT
1 a
,2 b
,3 c
) huzzah
このクエリでは、次のエラーが表示されます。" Error:141変数に値を割り当てるSELECTステートメントは、データ取得操作と組み合わせてはなりません。
これまでのところ、これに対処する唯一の回避策は、派生テーブルのデータを一時テーブルに挿入してから、再び選択することです。これはうまくいきますが、これがうまくいかないという事実は私をいらいらさせます。これを行うためのより良い方法はありますか?
解決
このエラーは、12.5.3 esd 4& 7、12.5.4 esd 4&で正常に動作します。 6。
パッチが適用されたバグのように見えますが、唯一の選択肢は回避策またはパッチです。
他のヒント
12.5.3に対してコードを実行したところ、問題なく解析されます...何も返されませんが、実行されます。エラーメッセージがまったく表示されないため、問題を少し簡略化しすぎた可能性があります。
明確にするために、次のコードが実行され、期待どおりの結果が返されます。
DECLARE @a int, @b int, @c int
SELECT
@a = huzzah.a
,@b = huzzah.b
,@c = huzzah.c
FROM (
SELECT
1 a
,2 b
,3 c
) huzzah
select @a
select @b
select @c
所属していません StackOverflow