it-swarm.com.de

Wie schreibe ich eine parametrisierte Abfrage in Management Studio?

Aus einer Client-Anwendung heraus mache ich normalerweise:

select * from table where Name = :Parameter

und dann vor dem Ausführen der Abfrage mache ich

:Parameter = 'John'

Diese Parameter sind keine Search & Replace-Parameter, sondern echte Parameter, die an den Server übergeben werden. Wie kann ich die Abfrage in Management Studio schreiben, da ich einige dieser Abfragen im Detail testen muss?

Ich möchte die Abfrage mit Parametern schreiben und dem Parameter einen Wert geben. Wie geht das?

Update:

Um hier Verwirrung zu vermeiden, füge ich Informationen hinzu, um myseld besser auszudrücken.

wenn ich eine normale Abfrage ausführe, wird dies im SQL Server Profiler angezeigt

select * from table where Name = 'John'

wenn ich eine parametrisierte Abfrage durchführe, sehe ich Folgendes:

exec sp_executesql N'select * from table 
where Name = @P1',N'@P1 varchar(8000)','John'

Deshalb sage ich, es ist kein Suchen und Ersetzen.

15
LaBracca

Wie wäre es mit so etwas

DECLARE @Parameter VARCHAR(20)
SET @Parameter = 'John'

SELECT *
FROM Table
WHERE Name = @Parameter
26
Adriaan Stander

Sieht aus, als hätten Sie Ihre eigene Frage bei der Aktualisierung beantwortet.

Hier für zukünftige Besucher umschreiben, die so verwirrt sein könnten wie ich. Im Folgenden wird beschrieben, wie Sie eine parametrisierte Abfrage in SSMS schreiben. Dies ist hilfreich, wenn Sie den Ausführungsplan für eine von Ihrem Code ausgeführte parametrisierte Abfrage analysieren möchten.

EXEC sp_executesql N'

SELECT * FROM table_t 
WHERE first_name = @parameter

', N'@parameter VARCHAR(8000)', 'John'
0
Dennis T

Mit Adriaan Stander zusätzlich in Ihrem Code antworten, dh wenn Sie beispielsweise C # verwenden, stellen Sie sicher, dass Sie den @ -Parameter über das Encapsulating übergeben
Codebeispiel unten zum Lernen:

            using (SqlConnection conn = new SqlConnection(conString))
            {
                conn.Open();

                SqlCommand cmd = new SqlCommand(userSql, conn);
                cmd.Parameters.AddWithValue("@parameter", parameter);


                conn.Close();

            }

Natürlich ist der obige Code kein vollständiger Code, aber Sie geben eine Idee. 

0
Wazzie