SQL-Script auf Server "finden"

akr6_

Benutzer
Beiträge
6
Hallo,

ich habe eine Anwendung, welche via SQL auf eine SQL-Datenbank zugreift. Nun würde ich gerne einer dieser Abfragen auf dem SQL-Server "sehen", damit ich mir so ein Script als Vorlage nehmen kann. Hm, ich glaube, das ist blöd formuliert.

Also, in der Anwendung kann ich via GUI diverse Sachen vorgeben, was dann auf der Datenbank zu einer Abfrage führt, und Ergebnisse liefert. Und genau diese Abfrage würde ich gerne auf dem SQL-Server einsehen können. In der Anwendung selbst geht das leider nicht.

Danke

Grüße

Andreas
 
Werbung:
AW: SQL-Script auf Server "finden"

Hallo,

Mit dem SQL-Profiler geht das. Einfach die Instanz angeben und auf Start drücken. Dann mit der Anwendung die Abfragen auf dem Server ausführen und für jede Anfrage auf dem Server gibt es eine neue Zeile (gnz grob ausgedrückt)

Gruß Charly
 
AW: SQL-Script auf Server "finden"

Hallo,

da war ich schon, aber da konnte ich nicht wirklich ein SQL-Script erkennen. Habe den Profiler gestartet, dann die Abfrage ausgeführt, und den Profiler wieder gestoppt. Aber außer Commit TRAN und so kann ich da nix erkennen. Gibt es dort Einstellung, womit ggf. nur Scripte aufgezeichnet werden.

Danke

Grüße

Andreas
 
AW: SQL-Script auf Server "finden"

Ich habe mal mit VB folgendes auf dem SQL-Server abgefragt.


Code:
Public Sub TransactQuery()
      Dim strSQL As String
      strSQL = "INSERT INTO Einheit (Kurzbez, Beschreibung) VALUES ('Stk','Stück');"
      Using cn As New SqlConnection(My.Settings.ConnectionString)
         cn.Open()
         Using txn As SqlTransaction = cn.BeginTransaction
            Dim cmd As New SqlCommand(strSQL, cn, txn)
            Dim intRecordsAffected As Integer = cmd.ExecuteNonQuery()
            txn.Rollback()
         End Using
      End Using
   End Sub

Das hat folgende Zeilen auf dem Profiler erzeugt.

Code:
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;BEGIN TRANSACTION
INSERT INTO Einheit (Kurzbez, Beschreibung) VALUES ('Stk','Stück');
IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION

Ich habe das trace in eine Datenbanktabelle exportiert um die Zeilen hier einzufügen. Es währe bei Dir auch einen Versuch wert das Ergebnis mal zu exportieren und zu schauen was in der Exporttabelle alles erscheint.

Gruß Charly

PS: Wenn da auch keine ordentlichen Daten rauskommen währen mehr Details zu der Anwendung und der Art der Abfragen hilfreich.
 
AW: SQL-Script auf Server "finden"

Hi,

das mit dem Trace speichern hab ich auch gerade versucht, da ich zuerst den Trace in eine Datei laufen hab. Ja, was macht die Anwendung. Ich suche über eine GUI nach Daten, welche in einem bestimmten Zeitfenster liegen müssen, also z.B. vom 22.06.2010 bis 21.09.2010. Ferner werden noch zwei Werte geprüft. Die Anwendung selbs nennt sich Mailminder. Und das im Hintergrund ist ein MS SQL Server 2005.

Danke

Grüße

Andreas
 
AW: SQL-Script auf Server "finden"

Hallo,

Ich würde noch folgendes prüfen.

1. Welche Instanz wird von der Anwendung genutzt (die gleiche wie vom Profiler?).
2. Welche Rechte hast du auf der Datenbank und dem Server.

Es gibt da noch was anderes.

Das Progamm Wireshark (Einfach Googlen) fängt sämtlichen Netzwerkverkehr ab.
Unter anderm auch den vom SQL-Server und seinen Clients. Ich habe das selber schon gemacht. Man sollte sich allerdings mit dem Ding auskennen (Das fängt schon bei der Installation an). Das Programm ist ein Netzwerkanalyse-Tool mit dem man auch komplexe Filter setzten kann. So z.B. welche Rechner mit welchen Ports überwacht werden sollen. Mann kann damit auch den Netzwerkverkehr zwischen SQL-Client und Server filtern. Voraussetzung ist das die Komunikation zwischen den beiden nicht verschlüsselt ist. Dann bekommt man in den Daten der TCP/IP Pakete die SQL-Scripts in Textform geliefert.

Das würde ich aber nur versuchen wenns wirklich wichtig ist.
Und für die Wireshark-Maschine kein Produktivsystem nehmen.

Gruß Charly
 
AW: SQL-Script auf Server "finden"

Hi,

also mit der Instanz müsste passen, und auf dem SQL-Server bin ich Admin. Ich sehe auch im Profiler diverse Aktivitäten, aber halt nicht DAS SQL-Script, welches ich da suche. Das hier sehe ich:

IF @@TRANCOUNT > 0 ROLLBACK TRAN
ROLLBACK TRAN
IF @@TRANCOUNT > 0 COMMIT TRAN

Muss ich in der Vorlage noch mehr ein- oder umstellen?

Grüße

Andreas
 
AW: SQL-Script auf Server "finden"

Hm,

das hab ich nun gemacht, aber das Einzige, was ich so an "Script" sehen kann ist das hier:

declare @p2 int
set @p2=180150479
declare @p5 int
set @p5=-1
exec sp_cursorexecute 1073741825,@p2 output,16,8193,@p5 output,''2010-09-23 15:22:48:293'',104
select @p2, @p5

Das hat nicht wirklich viel mit einer SQL-Abfrage zu tun, welche ich so kenne. Kann man so eine Abfrage irgendwie unter den "Langläufern" finden? Dann würde ich auf der Testmaschine eine Abfrage starten, die recht lange läuft, und den Weg versuchen.

Danke schon mal,

Grüße

Andreas
 
Werbung:
AW: SQL-Script auf Server "finden"

Doch doch,

Das sind Deklarationen und Zuweisungen für eine Stored Procedure namens sp_cursorexecute.

Und jetzt wirds kompliziert. Was sp_cursorexecute so genau macht ist nicht so leicht herauszufinden.

Hier steht genau beschrieben was man damit anstellen kann:
http://msdn.microsoft.com/de-de/library/ff713984.aspx

Ich melde mich nochmal wenn ich einen Weg gefunden habe ob man hier noch mehr infos mit dem Profiler rausholen kann

Gruß Charly
 
Zurück
Oben