Ich bin etwas verwirrt über die beste Möglichkeit zum Erstellen einer gespeicherten Prozedur, die eine SELECT-Anweisung basierend auf Tabellenzeilenwerte in einer anderen Tabelle zurückgibt.Übergeben Sie Spalten als Variablen an eine gespeicherte Prozedur in T-SQL
Das Problem, da dies am besten beschrieben:
Table Name: reportValues
--------------------------------------------
ID name date region
--------------------------------------------
1 Stefan 2010-01-01 UK
2 David 2010-01-05 SE
3 Anna 2010-01-12 NO
4 Marie 2010-01-15 NO
Table Name: reportParameters
-------------------------------
ID column queryValue
-------------------------------
1 ID
2 name
3 date
4 region
Nach dem, was der Benutzer gibt in der queryValue
Spalte in der reportParameters
Tabelle, ich möchte eine gespeicherte Prozedur konstruieren, was eine SELECT-Anweisung ausgeführt wird, wie dies:
SELECT * FROM reportValues WHERE region = 'NO'
Wenn der Benutzer eingegeben hat folgende Werte:
Table Name: reportParameters
-------------------------------
ID column queryValue
-------------------------------
1 ID
2 name
3 date
4 region NO
Aber es könnte auch sein:
SELECT * FROM reportValues WHERE region = 'NO' AND name = 'Anna'
Wenn der Benutzer eingegeben hatte:
Table Name: reportParameters
-------------------------------
ID column queryValue
-------------------------------
1 ID
2 name Anna
3 date
4 region NO
Mein erster Gedanke, es zu tun war eine Schleife zu machen, dass die SELECT-Anweisung in einen String-Konstrukten Variable und führt sie aus. Aber es wurde eine elegantere Lösung?