Update: Das osql.exe-Dienstprogramm wird nicht Transact-SQL-Skript vollständig ausgeführt, wenn Sie das Programm unter Verwendung eines Hintergrunddiensts aus einer Remotesitzung starten und anschließend der Konsole-Sitzung abmelden

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 843282 - Produkte anzeigen, auf die sich dieser Artikel bezieht
# Fehler: 471423 (SQL Server 8.0)
Microsoft stellt veröffentlichten Hotfixes für Microsoft SQL Server 2000 als downloadbare Datei zur Verfügung. Da die Hotfixes kumulativ sind, jede neue Version alle Hotfixes enthält und die Sicherheitsupdates wurden, in der vorherigen SQL Server 2000 Hotfix-Version enthalten.
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Nachdem Sie das Osql-Tool (osql.exe her) Verwendung eines Hintergrunddiensts wie der SQL Server-Agent oder der Microsoft Windows-Taskplaner, starten wenn ein Benutzer aus der Konsolensitzung auf dem Computer abmeldet, stellen Sie möglicherweise fest, dass das Dienstprogramm Osql beendet und die Transact-SQL kann nicht vollständig ausgeführt Skript, das an das Dienstprogramm Osql übergeben wird. Obwohl das Dienstprogramm Osql ohne Ausführen von Transact-SQL-Skript vollständig beendet wird, Angeben der Hintergrunddienst, dass die Auftrag erfolgreich war. Beispielsweise zeigt der SQL Server-Agent den Status als erfolgreich .

Ursache

Wenn ein Benutzer von der Konsolensitzung des Computers abmeldet, sendet das Betriebssystem die CTRL_LOGOFF_EVENT -Nachricht an das Dienstprogramm Osql. Das Dienstprogramm Osql verarbeitet diese Nachricht, als wenn das Dienstprogramm Osql interaktiv in der Konsolensitzung des Computers ausgeführt wird. Aus diesem Grund beendet den Prozess.

Lösung

Informationen zu Service Packs

Installieren Sie das neueste Service Pack für Microsoft SQL Server 2000, um dieses Problem zu beheben. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
290211So erhalten Sie das neueste Service Pack für SQL Server 2000

Hotfix-Informationen

Die englische Version dieses Hotfixes weist die Dateiattribute (oder höher Dateiattribute), die in der folgenden Tabelle aufgelistet werden. Die Datums- und Uhrzeitangaben für diese Dateien werden in Coordinated Universal Time aufgeführt (UTC). Wenn Sie sich die Dateiinformationen ansehen, werden diese Angaben in die lokale Zeit konvertiert. Um die Differenz zwischen UTC und der Ortszeit zu ermitteln verwenden Sie die Registerkarte Zeitzone des Tools ? Datum und Uhrzeit in der Systemsteuerung.
   Date         Time   Version        Size       File name
   ------------------------------------------------------------------
   19-Jun-2004  02:44  2000.80.954.0    664,128  Autoplt.dll      
   19-Jun-2004  02:44  2000.80.954.0     78,400  Console.exe      
   19-Jun-2004  02:44  2000.80.954.0    315,968  Custtask.dll     
   19-Jun-2004  02:44  2000.80.954.0     33,340  Dbmslpcn.dll     
   08-Apr-2004  21:42                   786,432  Distmdl.ldf
   08-Apr-2004  21:42                 2,359,296  Distmdl.mdf
   10-Oct-2003  18:48                       180  Drop_repl_hotfix.sql
   19-Jun-2004  02:44  2000.80.954.0  1,905,216  Dtspkg.dll       
   19-Jun-2004  02:44  2000.80.954.0    528,960  Dtspump.dll      
   19-Jun-2004  02:44  2000.80.954.0  1,557,052  Dtsui.dll        
   19-Jun-2004  02:44  2000.80.954.0    639,552  Dtswiz.dll       
   10-Oct-2003  18:48                   747,927  Instdist.sql
   10-Oct-2003  18:48                     1,581  Inst_repl_hotfix.sql
   19-Jun-2004  02:44  2000.80.954.0    352,828  Isqlw.exe        
   19-Jun-2004  02:44  2000.80.954.0     82,492  Itwiz.exe        
   19-Jun-2004  02:44  2000.80.954.0     90,692  Msgprox.dll      
   19-May-2004  23:43  8.11.40209.0     209,408  Mssdi98.dll      
   19-Jun-2004  02:44  2000.80.954.0     62,024  Odsole70.dll     
   19-Jun-2004  02:45  2000.80.954.0     25,144  Opends60.dll     
   19-Jun-2004  02:44  2000.80.954.0     57,904  Osql.exe         
   19-Jun-2004  02:44  2000.80.954.0    279,104  Pfutil80.dll     
   10-Oct-2003  18:37                   550,780  Procsyst.sql
   08-Apr-2004  21:42                    12,305  Qfe469315.sql
   08-Apr-2004  21:42                    19,195  Qfe469571.sql
   17-Jun-2004  15:12                 1,105,167  Replmerg.sql
   19-Jun-2004  02:44  2000.80.954.0    221,768  Replprov.dll     
   19-Jun-2004  02:44  2000.80.954.0    307,784  Replrec.dll      
   17-Jun-2004  02:37  2000.80.954.0    159,813  Replres.rll
   10-Oct-2003  18:48                 1,087,150  Replsys.sql
   10-Oct-2003  18:48                   986,603  Repltran.sql
   19-Jun-2004  02:44  2000.80.954.0    287,304  Rinitcom.dll     
   19-Jun-2004  02:44  2000.80.954.0     78,416  Sdiclnt.dll      
   19-Jun-2004  02:44  2000.80.954.0     66,112  Semmap.dll       
   19-Jun-2004  02:44  2000.80.954.0     57,916  Semnt.dll        
   19-Jun-2004  02:44  2000.80.954.0    492,096  Semobj.dll       
   17-Jun-2004  03:14  2000.80.954.0    172,032  Semobj.rll
   19-Jun-2004  02:44  2000.80.954.0     53,832  Snapshot.exe     
   12-Mar-2004  03:10                   117,834  Sp3_serv_uni.sql
   19-Jun-2004  02:43  2000.80.954.0     28,672  Sqlagent.dll     
   19-Jun-2004  02:44  2000.80.954.0    311,872  Sqlagent.exe     
   19-Jun-2004  02:43  2000.80.954.0    168,001  Sqlakw32.dll     
   19-Jun-2004  02:44  2000.80.954.0     33,344  Sqlctr80.dll     
   19-Jun-2004  02:44  2000.80.954.0  4,215,360  Sqldmo.dll       
   19-Jun-2004  02:44                    25,172  Sqldumper.exe    
   17-Jun-2004  02:24  2000.80.954.0     28,672  Sqlevn70.rll
   19-Jun-2004  02:44  2000.80.954.0    180,792  Sqlmap70.dll     
   19-Jun-2004  02:44  2000.80.954.0    188,992  Sqlmmc.dll       
   17-Jun-2004  03:22  2000.80.954.0    479,232  Sqlmmc.rll
   19-Jun-2004  02:44  2000.80.954.0    401,984  Sqlqry.dll       
   19-Jun-2004  02:44  2000.80.954.0     57,920  Sqlrepss.dll     
   19-Jun-2004  02:44  2000.80.954.0  7,581,777  Sqlservr.exe     
   19-Jun-2004  02:44  2000.80.954.0    590,396  Sqlsort.dll      
   19-Jun-2004  02:44  2000.80.954.0     45,644  Sqlvdi.dll       
   19-Jun-2004  02:44  2000.80.954.0    106,588  Sqsrvres.dll     
   19-Jun-2004  02:44  2000.80.954.0     33,340  Ssmslpcn.dll     
   19-Jun-2004  02:44  2000.80.954.0     82,492  Ssnetlib.dll     
   19-Jun-2004  02:44  2000.80.954.0     25,148  Ssnmpn70.dll     
   19-Jun-2004  02:44  2000.80.954.0    123,456  Stardds.dll      
   19-Jun-2004  02:44  2000.80.954.0    158,240  Svrnetcn.dll     
   19-Jun-2004  02:44  2000.80.954.0     76,416  Svrnetcn.exe     
   19-Jun-2004  02:44  2000.80.954.0     49,228  Ums.dll          
   19-Jun-2004  02:44  2000.80.954.0     98,872  Xpweb70.dll      
				
Hinweis: Aufgrund kann wechselseitiger Abhängigkeiten zwischen der aktuellste Hotfix, der diese Dateien enthält auch weitere Dateien enthalten.

Status

Microsoft hat bestätigt, dass dies ein Problem in Microsoft-Produkten handelt, die im Abschnitt "Gilt für" aufgeführt sind. Dieses Problem wurde erstmals in Microsoft SQL Server 2000 Service Pack 4.

Weitere Informationen

Schritte zum Reproduzieren des Verhaltens

  1. Öffnen Sie eine Terminal Server-Sitzung eines Computers.
  2. Starten Sie den Editor.
  3. Schreiben Sie in Editor ein Transact-SQL-Skript, die für einen langen Zeitraum ausgeführt wird. Beispielsweise verwenden das folgende Transact­SQL-Skript, das eine unendliche Schleife verfügt:
    declare @variable int
    set @variable= 2
    while (@variable > 1)
    begin
    print @variable
    set @variable= @variable + 1
    end
  4. Speichern Sie das Skript als InstallationDrive \Test.sql.

    Hinweis: InstallationDrive ist ein Platzhalter für das standardmäßige Installation Laufwerk auf dem Computer.
  5. Starten Sie in der Sitzung Terminaldiensteclient das Dienstprogramm Osql, indem Sie eine der folgenden Methoden:
    • verwendet Windows-Taskplaner
      1. Öffnen Sie in der Systemsteuerung geplante Tasks.
      2. Im Menü Datei auf neu , und klicken Sie anschließend auf Geplanten Task .
      3. Doppelklicken Sie auf Neuer Vorgang , um das Dialogfeld Neue Aufgabe zu öffnen.
      4. Geben Sie im Feld Ausführen den folgenden Befehl:
        "InstallationDrive: \Programme\Microsoft SQL Server\80\Tools\Binn\Osql.exe" -E -i InstallationDrive: \Test.sql
        Hinweis: InstallationDrive ist ein Platzhalter für das standardmäßige Installation Laufwerk auf dem Computer.
      5. Geben Sie im Start in InstallationDrive: \Programme\Microsoft SQL Server\80\Tools\Binn .
      6. Auf der Registerkarte Zeitplan ändern Sie die Anzeigedauer Zeitplan, und klicken Sie dann auf OK .
      7. Kontoinformationen festlegen im Dialogfeld geben Sie das Benutzerkonto und das Kennwort des Ihr Anmeldekonto, und klicken Sie dann auf OK .
      8. Klicken Sie mit der rechten Maustaste auf die Auftrag, die Sie erstellt haben, und klicken Sie dann auf Ausführen .
      9. Während der geplante Task ausgeführt wird, melden Sie sich auf der Konsole-Sitzung, und melden Sie sich von der Konsolensitzung auf dem Computer.
    • verwendet SQL Server-Agent
      1. Starten Sie SQL Server Enterprise Manager.
      2. Erweitern Sie die registrierte Instanz von einer SQL Server.
      3. Unter dem Servernamen erweitern Sie Verwaltung , und erweitern Sie dann SQL Server-Agent .
      4. Klicken Sie unter SQL Server-Agent klicken Sie mit der rechten Maustaste auf Aufträge und dann auf Neuer Auftrag .
      5. Geben Sie auf der Registerkarte Allgemein einen Namen für die Auftrag im Feld Name ein.
      6. Klicken Sie auf der Registerkarte Schritte auf neu .
      7. Geben Sie auf der Registerkarte Allgemein einen Namen für die Schritt im Feld Schrittname .
      8. Klicken Sie in der Liste Typ auf Betriebssystembefehl (CmdExec) .
      9. Geben Sie im Befehl "InstallationDrive: \Programme\Microsoft SQL Server\80\Tools\Binn\Osql.exe" -E -i InstallationDrive: o \Test.sql InstallationDrive: \Test.txt , und klicken Sie dann auf OK .

        Hinweis: InstallationDrive ist ein Platzhalter für das standardmäßige Installation Laufwerk auf dem Computer.
      10. Klicken Sie im Dialogfeld Neuer Auftrag-Eigenschaften - SQLServerName auf OK .
      11. Klicken Sie mit der rechten Maustaste auf die Auftrag, die Sie erstellt haben, und klicken Sie dann auf Auftrag starten .
      12. Während der Auftrag ausgeführt wird, melden Sie sich auf der Konsole-Sitzung, und melden Sie sich von der Konsolensitzung auf dem Computer.
    Sie feststellen, dass der geplante Task oder der SQL Server-Agent Auftrag beim Abmelden von der Konsolensitzung des Computers beendet wird. Sie auch feststellen, dass der geplante Task oder der SQL Server-Agent einen Erfolg für den Status der Auftrag Berichten.

Informationsquellen

Informationen finden Sie auf den folgenden Websites von Microsoft Developer Network (MSDN):
Transact­SQL-Skript Dateien mithilfe von Osql ausgeführt
http://msdn2.microsoft.com/en-us/library/aa213087(SQL.80).aspx

SetConsoleCtrlHandler
http://msdn2.microsoft.com/en-us/library/ms686016.aspx

HandlerRoutine
http://msdn2.microsoft.com/en-us/library/ms683242.aspx

Eigenschaften

Artikel-ID: 843282 - Geändert am: Freitag, 2. November 2007 - Version: 3.3
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Enterprise Edition 64-bit
Keywords: 
kbmt kbkern32dll kbsqlserv2000presp4fix kbfix kbbug kbhotfixserver kbqfe KB843282 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 843282
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com