Frage

Nur um zu klären, ich bin mit Sybase 12.5.3, aber ich bin zu der Annahme verleiten, dass dies auch für SQL Server 2005 gilt. Im Grunde genommen, ich versuche, eine Abfrage zu schreiben, die ein wenig so aussieht, habe ich es so weit wie möglich vereinfacht das Problem zu markieren:

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

Diese Abfrage gibt mir die folgende Fehlermeldung: „Fehler:. 141 Eine SELECT-Anweisung, die einen Wert einer Variablen zugewiesen darf nicht mit Datenabruf-Operationen kombiniert werden“

Die einzige Arbeit, um die ich bisher für diese habe, ist die abgeleitete-Tabellendaten in eine temporäre Tabelle einfügen und es anschließend gleich wieder aus. Welche funktioniert gut, aber die Tatsache, dass dies nicht ärgert mich nicht funktioniert. Gibt es einen besseren Weg, dies zu tun?

War es hilfreich?

Lösung

Der Fehler wie in 12.5.3 esd 4 beschrieben erscheint und 7, es läuft gut in 12.5.4 esd 4 & 6.

Sieht aus wie ein Bug, der gepatcht worden ist, ist Ihre einzigen Optionen scheinen Abhilfe oder Patch zu sein.

Haben Sie gefunden, was die bug 377625

zu sein scheint

Andere Tipps

Ich habe gerade lief Code gegen 12.5.3 und es parst in Ordnung ... nichts zurück, aber es läuft. Haben Sie vielleicht das Problem ein bisschen zu sehr vereinfacht, weil ich keine Fehlermeldungen an alle zu sehen bin.

Just klar zu sein, die folgenden Läufe und gibt, was man erwartet.

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top