1

明確にするために、私はSybase 12.5.3を実行していますが、これはSQLServer2005にも当てはまると思います。基本的に、私はこのようなクエリを作成しようとしています。問題を強調するために、可能な限り単純化しました。

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

このクエリにより、次のエラーが発生します。「エラー:141変数に値を割り当てるSELECTステートメントは、データ取得操作と組み合わせてはなりません。」

これまでに私が得た唯一の回避策は、派生テーブルのデータを一時テーブルに挿入してから、もう一度選択することです。これは問題なく機能しますが、これが機能しないという事実は私を苛立たせます。これを行うためのより良い方法はありますか?

4

2 に答える 2

2

エラーは12.5.3esd4&7で説明されているように表示されますが、12.5.4 esd 4&6では正常に実行されます。

パッチが適用されたバグのようです。唯一のオプションは回避策またはパッチのようです。

バグ377625と思われるものを見つけました

于 2008-10-29T22:09:09.843 に答える
1

コードを 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
于 2008-10-27T09:27:26.967 に答える