2016-06-01 3 views
2

Ich mache ein paar Tests hinsichtlich der Geschwindigkeit in SQL Server. Um es zu tun Ich habe diese einfache Abfrage:Auswählen von @ Parametern mit SQL

DECLARE @Time1 Date; 
DECLARE @Time2 Date; 

Set @Time1 = GETDATE(); 
-- Stuff happening 
Set @Time2 = GETDATE(); 

Jetzt habe ich die Werte dieser Eigenschaften (Zeit1 und Zeit2) überprüfen möchten. Ich habe versucht, eine SELECT @Time1, Time2, aber immer Fehler zu bekommen, also wie kann ich diese Werte überprüfen?

BEARBEITEN: Wie ich dem Autor der angenommenen Antwort erwähnte, war es wahrscheinlich ein Syntaxfehler, der mich von der Verwendung eines einfachen SELECT entzogen wurde. Für die Tatsache, dass die Frage in der Warteschleife ist, sehe ich wirklich nicht warum, wie es scheint, eine einfache Frage für mich. Ich habe @parameter erstellt und einen Wert für sie festgelegt, dann möchte ich diese Werte überprüfen.

+0

Dies sind Variablen, keine Parameter. Es gibt kein Problem mit Parametern oder Variablen in der SELECT-Klausel, daher ist die Frage unklar. –

+0

@ PanagiotisKanavos ja, du hast Recht. Wie ich RichBenner gesagt habe, weiß ich nicht, dass ich die SELECT-Anweisung vorher nicht ausführen konnte ... Es muss ein kleiner Syntaxfehler sein, der mir nicht entgangen ist. –

Antwort

3

"Ein SELECT ist nicht möglich" - Wer hat Ihnen das gesagt?

DECLARE @Time1 DateTime; 
DECLARE @Time2 DateTime; 

Set @Time1 = GETDATE(); 
-- Stuff happening 
Set @Time2 = GETDATE(); 

SELECT 
@Time1 
,@Time2 

I dies verwendet habe, wenn eine große gespeicherte Prozedur analysiert, habe ich einige Datumzeit-Parameter an den wichtigen Punkten innerhalb der gespeicherten proc GETDATE() verwendet und eingesetzt, sie in eine Audit-Tabelle am Ende des Verfahrens. Es war sehr praktisch festzustellen, welcher Teil der Live-Stored-Procedure für die Benutzer langsam lief.

+0

Ja, du hast Recht. Ich hatte einen Fehler, als ich das SELECT ausprobiert habe ... Ich weiß nicht, was passiert ist. Wie auch immer, Prost! –

+0

Ich akzeptiere die Antwort in 5 Minuten –

+0

keine Sorgen, wir alle bekommen diese seltsamen Dinge passieren manchmal. glücklich, ich könnte helfen. Wahrscheinlich möchten Sie die Variablen als Datetime BTW deklarieren. –

0

Zuerst vielleicht ist es nessecarry die @TimeX als TIME-Werte zu erklären - nicht als DATE ....

und als Sie con PRINT

Print @ Zeit1 Print @ Time2 verwenden

+0

Natürlich können Sie SELECT-Anweisung verwenden – RoKli

+0

Es ist nichts falsch mit der Verwendung von Parametern oder Variablen in einer SELECT-Klausel. Willkürliche Typänderungen sind kein Weg, um ein Problem zu lösen, entweder –

+0

Sie haben Recht - aber wenn Sie DATE-Definition verwenden, wie gezeigt, die PRINT oder SELECT-Anweisung zeigt das gleiche Datum zweimal - und dafür habe ich geschrieben "PERHAPS" ändern Sie die Definition von DATUM zu ZEIT - oder DATETIME, natürlich – RoKli