Frage : Using eine Variable im AUFTRAG DURCH Klausel eines SQL-gespeicherten Verfahrens.

Ich schreibe ein gespeichertes Verfahren, das verwendet wird, um eine AUSERWÄHLTE Frage mit mehrfachem AUFTRAG laufen zu lassen DURCH Spalten.  Ich überschreite in den AUFTRAG DURCH Parameter -- @FIELD1, @FIELD2, z.B.  Problem ist, SQL lässt mich nicht eine Variable im AUFTRAG DURCH clause.

I verwenden wünschen das proc wie dieses aussehen:

CREATE VERFAHREN udp_MULTI_SORT @FIELD1 VARCHAR (15), @FIELD2 VARCHAR (15)
AS

SELECT * VOM AUFTRAG RM00101 DURCH @FIELD1, @FIELD2

The SQL Störung, die ich erhalte, wenn ich dieses bin versuche:

The das AUSERWÄHLTE Einzelteil, das durch den AUFTRAG DURCH Nr. 1 gekennzeichnet wird, enthält eine Variable als Teil des Ausdrucks, der eine Spaltenposition kennzeichnet. Variablen werden nur bei der Einrichtung durch einen Ausdruck erlaubt, der eine Spalte name.

Does bezieht, das jedermann eine Weise um dieses kennen?

Antwort : Using eine Variable im AUFTRAG DURCH Klausel eines SQL-gespeicherten Verfahrens.

wie die Fehlermeldung anzeigt: die Feldnamen in Feldpositionen (Datenart int) ändern, ODER Sie müssen zu einem „dynamischen“ sql zu einem bestimmten Zeitpunkt ändern
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
VERFAHREN udp_MULTI_SORT @FIELD1 VARCHAR (15), @FIELD2 VARCHAR (15) VERURSACHEN
WIE
VORWÄHLEN * 
 VON RM00101 
AUFTRAG DURCH CASE 
   WENN @FIELD1 = „Col1“ DANN Col1 
   WENN @FIELD1 = „Col2“ DANN Col2
   --- usw. ----
  ENDE
, FALL 
   WENN @FIELD2 = „Col1“ DANN Col1 
   WENN @FIELD2 = „Col2“ DANN Col2
   --- usw. ----
  ENDE

//-Anmerkung: im oben genannten Vorschlag konnten Sie mehr „Fallaussagen“ addieren müssen, um für verschiedene Datenarten unterzubringen
 



ODER, die schnelle und schmutzige Methode


VERFAHREN udp_MULTI_SORT @FIELD1 VARCHAR (15), @FIELD2 VARCHAR (15) VERURSACHEN
WIE
exec (* VOM AUFTRAG RM00101 VORBEI VORWÄHLEN [„+ @FIELD1 +“], [„+ @FIELD2 +“] ')
Weitere Lösungen  
 
programming4us programming4us