AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi INSERT INTO SELECT mit Subselect funktioniert nicht mehr
Thema durchsuchen
Ansicht
Themen-Optionen

INSERT INTO SELECT mit Subselect funktioniert nicht mehr

Ein Thema von HeikoAdams · begonnen am 25. Sep 2008 · letzter Beitrag vom 25. Sep 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von HeikoAdams
HeikoAdams

Registriert seit: 12. Jul 2004
Ort: Oberfranken
661 Beiträge
 
FreePascal / Lazarus
 
#1

INSERT INTO SELECT mit Subselect funktioniert nicht mehr

  Alt 25. Sep 2008, 10:00
Datenbank: MS SQL • Version: 2000 SP4 • Zugriff über: ADO
Hallo,
ich habe zur Zeit ein merkwürdiges Problem mit dem SQL Server 2000. In unserer Produktdatenbank wird in vielen Storedprocedures ein Insert-Statement der folgenden Art und Weise:
INSERT INTO ab SELECT c FROM d WHERE e NOT IN (SELECT f FROM g) Bislang wurden diese Inserts vom SQL Server anstandslos ausgeführt. Jedoch ist es seit dem letzten Hotfix-Update so, das der SQL Server diese Prozeduren mit der Fehlermeldung "... Die Unterabfrage liefert mehr als ein Ergebnis zurück ..." abbricht.

Hat jemand das selbe Problem, oder weiß jemand, wie man den SQL Server dazu bringen kann, das "alte" Verhalten wieder zu aktivieren??

Gruß
Jeder kann ein Held werden und Leben retten!
Einfach beim NKR oder der DKMS als Stammzellenspender registrieren! Also: worauf wartest Du noch?
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: INSERT INTO SELECT mit Subselect funktioniert nicht mehr

  Alt 25. Sep 2008, 10:10
Das Problem liegt in
WHERE e NOT IN (SELECT f FROM g) Die Fehlermeldung ist wohl aussagekräftig genug. Der Pseudocode f darf nur genau ein Feld bezeichnen, das typengleich mit e sein muss, also z.b. auf keinen Fall *.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von HeikoAdams
HeikoAdams

Registriert seit: 12. Jul 2004
Ort: Oberfranken
661 Beiträge
 
FreePascal / Lazarus
 
#3

Re: INSERT INTO SELECT mit Subselect funktioniert nicht mehr

  Alt 25. Sep 2008, 10:12
Zitat von Union:
Das Problem liegt in
WHERE e NOT IN (SELECT f FROM g) Die Fehlermeldung ist wohl aussagekräftig genug. Der Pseudocode f darf nur genau ein Feld bezeichnen, das typengleich mit e sein muss, also z.b. auf keinen Fall *.
Das ist mir schon klar, nur ist es so, das dieser Code bislang Fehlerfrei ausgeführt wurde und nun auf einmal eine Fehlermeldung auslöst. Und solch eine Änderung im Programmverhalten erwarte ich absolut nicht bei einem Hotfix
Jeder kann ein Held werden und Leben retten!
Einfach beim NKR oder der DKMS als Stammzellenspender registrieren! Also: worauf wartest Du noch?
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#4

Re: INSERT INTO SELECT mit Subselect funktioniert nicht mehr

  Alt 25. Sep 2008, 10:39
Hallo,

SQL-Code:
create table ab
( c int
);

create table d
( c int,
  e int
);

create table g
( f int
);

insert into g (f) values (1);
insert into g (f) values (2);
insert into g (f) values (3);
insert into g (f) values (4);
insert into g (f) values (5);
insert into g (f) values (6);

insert into d (c,e) values (1,2);
insert into d (c,e) values (3,4);
insert into d (c,e) values (5,6);
insert into d (c,e) values (7,8);
insert into d (c,e) values (9,10);
insert into d (c,e) values (11,12);
insert into d (c,e) values (17,14);

insert into ab select c from d where e not in (select f from g);

select * from ab

select * from d

select * from g
getestet gegen SQL-Server 2005 und Postgres 8.3: funktioniert.
Sieht schwer nach einem Fehler im Hotfix aus .

Stephan

PS: War der Hotfix erforderlich? Wenn nein, rückgängig machen (Never touch...)
  Mit Zitat antworten Zitat
Benutzerbild von HeikoAdams
HeikoAdams

Registriert seit: 12. Jul 2004
Ort: Oberfranken
661 Beiträge
 
FreePascal / Lazarus
 
#5

Re: INSERT INTO SELECT mit Subselect funktioniert nicht mehr

  Alt 25. Sep 2008, 10:45
Zitat von nahpets:
War der Hotfix erforderlich? Wenn nein, rückgängig machen (Never touch...)
Soweit ich mich erinnere, war es ein Sicherheitsupdate, da der Hotfix über das automatische Update von Windows ausgeliefert wurde.
Jeder kann ein Held werden und Leben retten!
Einfach beim NKR oder der DKMS als Stammzellenspender registrieren! Also: worauf wartest Du noch?
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

Re: INSERT INTO SELECT mit Subselect funktioniert nicht mehr

  Alt 25. Sep 2008, 10:58
Zitat von HeikoAdams:
Zitat von nahpets:
War der Hotfix erforderlich? Wenn nein, rückgängig machen (Never touch...)
Soweit ich mich erinnere, war es ein Sicherheitsupdate, da der Hotfix über das automatische Update von Windows ausgeliefert wurde.
Naja, das ist für mich kein Argument.
Das automatische Update von Windows ist bei mir immer ausgeschaltet, habe schon zu oft Systeme reparieren oder neu Aufsetzen müssen, weil da verschlimmbessert wurde. Da mach' ich mir lieber die Arbeit und prüfe, was ich brauche. Und das wird vorher an einem System getestet, dass ggfls. nach dem Test "weggeworfen" werden kann. Kann mir keinen Produktionsausfall wegen schiefgelaufener Sicherheitsupdates leisten.

Und in Bezug auf Hotfix sollte man immer das im Auge behalten: Schneider nennen das mit der heißen Nadel stricken

Stephan
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#7

Re: INSERT INTO SELECT mit Subselect funktioniert nicht mehr

  Alt 25. Sep 2008, 11:09
Zitat von Union:
Das Problem liegt in
WHERE e NOT IN (SELECT f FROM g) Die Fehlermeldung ist wohl aussagekräftig genug. Der Pseudocode f darf nur genau ein Feld bezeichnen, das typengleich mit e sein muss, also z.b. auf keinen Fall *.
Nö, die Meldung macht absolut keinen SInn.
"not in" Soll ja selbst eine Erbnismenge liefern in der dein Wert nicht vorkommen soll.

Ansonsten ganz der Meinung von nahpet: kein Autoupdate auf einem Server. Erst recht nicht bei einem DB Server.

Wir werden hier in den nächsten Monaten komplett auf Virtualisierung setzen wodurch wir Updates immer in einem Clone testen können um dann eine sichere Entscheidung treffen zu können.
Das eine oder andere Update hat usn nämlich auch schon Kopfschmerzen bereitet. Manche Fixes waren nämlich nicht immer so leicht aus dem Weg zu gehen. (offene Scheunentore... äh Lücken im IIS zum Beispiel... )
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von HeikoAdams
HeikoAdams

Registriert seit: 12. Jul 2004
Ort: Oberfranken
661 Beiträge
 
FreePascal / Lazarus
 
#8

Re: INSERT INTO SELECT mit Subselect funktioniert nicht mehr

  Alt 25. Sep 2008, 11:59
Nur zur Info: Wir reden von diesem Hotfix: http://www.microsoft.com/technet/sec.../ms08-040.mspx
Jeder kann ein Held werden und Leben retten!
Einfach beim NKR oder der DKMS als Stammzellenspender registrieren! Also: worauf wartest Du noch?
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#9

Re: INSERT INTO SELECT mit Subselect funktioniert nicht mehr

  Alt 25. Sep 2008, 12:22
Hallo Heiko,
Zitat von HeikoAdams:
Nur zur Info: Wir reden von diesem Hotfix: http://support.microsoft.com/?scid=k...943677&x=5&y=9
hattet Ihr bei eurem System das dort beschriebene Problem?
Dort steht ausdrücklich, Hotfix nur auf solchen Systemen einsetzen, bei denen das Problem auftrat.
Hattet Ihr das Problem nicht, versucht den Hotfix wegzubekommen (oder System neu aufsetzen ohne den Hotfix).

Und Bittebitte: Hotfixe nur dann und wirklich nur dann, wenn das von den Hotfixen zu behebende Problem wirklich aufgetreten ist. Wir hatten schon zuviele Seiteneffekte und zerschossenen Systeme.

Eventuell frag' mal unter www.administrator.de, ob Dir dort jemand helfen kann, habe per Google und Co. keine Infos über Fehler oder Seiteneffekte zu dem Hotfix finden können.

Stephan
  Mit Zitat antworten Zitat
Benutzerbild von HeikoAdams
HeikoAdams

Registriert seit: 12. Jul 2004
Ort: Oberfranken
661 Beiträge
 
FreePascal / Lazarus
 
#10

Re: INSERT INTO SELECT mit Subselect funktioniert nicht mehr

  Alt 25. Sep 2008, 14:46
Mein Fehler. Ich hatte mein Posting anscheinend zuspät korrigiert.
Jeder kann ein Held werden und Leben retten!
Einfach beim NKR oder der DKMS als Stammzellenspender registrieren! Also: worauf wartest Du noch?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz