# parameter (MS SQL)



## hikeda_ya (10. April 2006)

Hallo,

ich habe da ne "einfache" Frage.

und zwar hab ich eine fertige Select Abfrage Batch geschrieben. mit der ich in einer Spalte nach einem bestimmten Kriterium suchen möchte.

jetzt möchte ich nicht in der Abfrage alle Kriterien einzeln ändern sondern wenn ich die Select abfrage Starte ein "Parameter" eingeben der dann in die entsprechenden Stellen eingetragen wird.

mit php wär das kein Problem doch habe ich lediglich die MS SQL Query Analyzer zur Verfügung. 

Wie funktioniert das dort


----------



## Nico Graichen (10. April 2006)

Hi, 

Ich hoffe ich hab dich richtig verstanden:

Du kannst am Anfang deines Batches eine Variable deklairieren.

```
DECLARE @var int
```
Anschließend muss du der Variable einen Wert zuweisen

```
SELECT @var = 4711
```
und die Variable natürlich in einem Query nutzen

```
SELECT fielda FROM mytable WHERE fieldb = @var
```

Oder du speicherst dein Batch als User Defined Function und übergibst den Wert als Parameter


----------



## hikeda_ya (11. April 2006)

vielen Dank ist genau das was ich wollte -

nur jetzt braucht die Abfrage ne halbe Ehwigkeit ist das normal?

(braucht jetzt 6 Minuten und vorher 20 Sekunden)

und Ergebniss = NULL
vorher = 88 Datensätze gefunden

denke mal das ich da noch was falsch mache

```
DECLARE @var varchar 
SELECT @var = 20270

select * from tabelle_4
where [kd-nr] = @var

SELECT   [kd-nr], postanschrift,  count(*) AS anzahl FROM tabelle_4 
GROUP BY [kd-nr], postanschrift
ORDER BY anzahl desc
```

dann bekomm ich 2 Ergebnisse das erste ist leer und in dem zweiten ist die Kd-nr ganz oben aufgeführt mit 3 Einträgen


----------



## hikeda_ya (11. April 2006)

welche Angabe muss ich machen wenn ich einen Text Parameter übergeben will



> DECLARE @var varchar
> SELECT @var = 'titel'
> 
> update ansprechpartner
> set @var = null where @var like ''



macht mir keine aktualisierung


----------

