質問

明確にするために、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。

パッチが適用されたバグのように見えますが、唯一の選択肢は回避策またはパッチです。

バグ377625

他のヒント

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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top