Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieses Thema gilt für folgende Editionen:
Visual Studio Ultimate |
Visual Studio Premium |
Visual Studio Professional |
Visual Studio Express |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Warnung
Erweiterte gespeicherte Prozeduren sind veraltet.Sie werden in ASP.NET aus Gründen der Abwärtskompatibilität zwar weiterhin unterstützt, diese Unterstützung wird jedoch in einer zukünftigen Version entfernt.
Erweiterte gespeicherte Prozeduren wurden eingeführt, um Aktionen zu ermöglichen, die in Transact-SQL nicht zur Verfügung stehen, z. B. der Zugriff auf das Dateisystem, das Lesen der Registrierung usw.Da diese Aktionen jetzt anhand von SQL CLR-Prozeduren durchgeführt werden können, werden erweiterte gespeicherte Prozeduren nicht mehr benötigt.Es wird dringend empfohlen, keine neuen erweiterten gespeicherten Prozeduren zu schreiben und vorhandene erweiterte gespeicherte Prozeduren ggf. durch gespeicherte SQL CLR-Prozeduren zu ersetzen, die die gleiche Funktion bieten, aber sicherer sind.
Erweiterte gespeicherte Prozeduren sind DLLs, die in C++ oder einer beliebigen anderen Sprache (aber nicht SQL) geschrieben sind.Das Debuggen einer erweiterten gespeicherten Prozedur ist daher weitgehend mit dem Debuggen einer DLL in der jeweiligen Sprache identisch.
Warnung
Erweiterte gespeicherte Prozeduren werden normalerweise in systemeigenem C++ geschrieben und bieten nicht den bei verwaltetem Code verfügbaren Schutz.Sie sollten sorgfältig getestet werden, da Fehler SQL Server zum Abstürzen bringen können.Zur Vermeidung potenzieller Datenverluste und anderer Probleme sollten erweiterte gespeicherte Prozeduren nicht auf einem Produktionsserver gedebuggt werden.Weitere Informationen finden Sie in der ASP.NET-Onlinedokumentation.
Je nach aktivierten Einstellungen oder verwendeter Edition können sich die angezeigten Dialogfelder und Menübefehle von den Beschreibungen in der Hilfe unterscheiden.Klicken Sie zum Ändern der Einstellungen im Menü Extras auf Einstellungen importieren und exportieren.Weitere Informationen finden Sie unter Visual Studio Settings.
So debuggen Sie eine erweiterte gespeicherte Prozedur
Beginnen Sie mit einem Debugbuild einer erweiterten gespeicherte Prozedur-DLL.Sie benötigen auch eine Anwendung, die die erweiterte gespeicherte Prozedur aufruft, die Sie debuggen möchten.Falls Sie nicht über eine solche Anwendung verfügen, führen Sie eine der folgenden Aktionen aus:
Erstellen Sie ein Visual Studio-Datenbankprojekt mit einer Datenverbindung für die Datenbank, die die erweiterte gespeicherte Prozedur und den Code zum Aufrufen der erweiterten gespeicherten Prozedur enthält.
Erstellen Sie eine SQL-Skriptdatei, die die erweiterte gespeicherte Prozedur aufruft.
- oder -
Verwenden Sie eine mit einem Produkt bereitgestellte Anwendung wie SQL Server Management Studio in SQL Server oder ODBC Test im ODBC-SDK.
Wenn SQL Server zurzeit als Dienst ausgeführt wird, beenden Sie den Dienst, indem Sie in der Systemsteuerung unter Dienste die Option SQL Server auswählen und auf Beenden klicken.
Kopieren Sie die Debugversion der DLL in das Verzeichnis, in dem sich "Sqlservr.exe" befindet, oder in ein beliebiges Verzeichnis im Suchpfad.
- oder -
Legen Sie wie folgt ein Postbuildereignis fest, um die DLL in das C++-Projekt zu kopieren:
Öffnen Sie das Dialogfeld <Projekt>-Eigenschaftenseiten.
Öffnen Sie im Dialogfeld <Projekt>-Eigenschaftenseiten den Ordner Konfigurationseigenschaften.
Öffnen Sie unter Konfigurationseigenschaften den Ordner Buildereignisse.
Wählen Sie Postbuildereignis aus.
Geben Sie im Rastersteuerelement neben Befehlszeile einen Kopierbefehl ein, z. B.:
Copy c:\MyProjects\MyXProc\debug\MyXProc.dll C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn
Registrieren Sie die erweiterte gespeicherte Prozedur.
Geben Sie SQL Server als aufrufende ausführbare Datei und Arbeitsverzeichnis für die erweiterte gespeicherte Prozedur-DLL an.Ändern Sie wie folgt die Einstellungen im Dialogfeld <Projekt>-Projekteigenschaften (in der Kategorie Debugging des Ordners Konfigurationseigenschaften):
Wenn SQL Server am Standardspeicherort installiert wurde, geben Sie C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\SQLSERVR.EXE in das Feld Befehl ein.
Legen Sie den Eintrag Arbeitsverzeichnis auf "C:\Programme\Microsoft SQL Server\MSSQL.1\MSSQL\Binn" fest.
Legen Sie den Eintrag Befehlsargumente auf -c fest.Die -c-Option gibt an, dass SQL Server über die Befehlszeile gestartet wird und nicht als Dienst. Dadurch wird SQL Server schneller gestartet.SQL Server wird nicht als Dienst, sondern als Konsolenanwendung unter der Steuerung der Visual Studio-Debugumgebung gestartet.Dadurch werden Haltepunkte korrekt aufgefangen und behandelt.
Legen Sie Haltepunkte im Quellcode der erweiterten gespeicherten Prozedur fest.
Verwenden Sie einen Ausführungsbefehl, um die Debugsitzung zu starten.Weitere Informationen finden Sie unter Ausführungssteuerung.
Beim Start von SQL Server wird ein Konsolenfenster angezeigt.Sobald der Textbildlauf beendet ist, wird die letzte Meldung mit folgendem Inhalt angezeigt:
Die 'sp_sqlregister'-Startprozedur wurde gestartet.
SQL Server wird gestartet und beginnt mit der Verarbeitung der Anforderungen.
Führen Sie die erweiterte gespeicherte Prozedur aus.
Der Debugger wird angehalten, wenn er eine Zeile mit einem Haltepunkt erreicht.
Weitere Informationen zum Schreiben von erweiterten gespeicherten Prozeduren finden Sie im Abschnitt zu SQL Server in der Microsoft Knowledge Base oder im Abschnitt zur Programmierung erweiterter gespeicherter Prozeduren in der SQL Server-Dokumentation in der MSDN Library.
.gif)
.gif)