SQL GOTO-Anweisung mit der Variablen-label
hoffte ich, in der Lage sein, so etwas zu tun:
declare @label varchar
set @label = 'label_1'
goto @label
label_1:
label_2:
natürlich, sql-server gibt mir eine falsche syntax error... also ich Frage mich, ob ich immer noch mit einer etwas anderen syntax?
InformationsquelleAutor Omer Bokhari | 2009-02-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich gekocht habe einen funktionierenden hack, der das kann nützlich sein, um andere. Auf SQL Server 2008, können Sie nicht dynamisch bauen, die springen, noch können Sie liefern das label in eine variable. Die old-school-hack ist das laden der variable, springen auf einen einzigen Punkt, der dann verwendet wird, wenn-Anweisungen, um zu bestimmen, das eigentliche Ziel.
GOTOs sind natürlich schädlich und sind in der Regel eine schlechte Idee.
Diese produziert
InformationsquelleAutor Dan Pichelman
Können Sie dies nur tun, wenn Sie dynamisch die SQL-Anweisung erstellen.
GOTOs sind am besten vermieden werden, obwohl - vor allem für die Lesbarkeit des Codes.
InformationsquelleAutor Keith
Warum wird nicht einfach eine if/else?
InformationsquelleAutor
Soweit ich weiß, können Sie nicht parametrisieren SPRINGEN. Sie können das tun, wenn Sie Dynamisches SQL verwenden.
InformationsquelleAutor Fabricio Araujo
Nicht eine zeitnahe Antwort offensichtlich, aber wenn vor kurzem fand ich mich wollen, um dies zu tun, der Grund war, weil ich wollte, um ausführen die gleichen Stück code mehrere Male und dann wieder auf den normalen Ablauf, im Grunde "gosub" und nicht "springen"....
Und , dass Sie tun können. Nicht mit einem gosub, aber mit einer temporären gespeicherten Prozedur -- erstellen eines temporären gespeicherten Prozedur
create procedure #DRY
und dann nennen Sie es. Sie können legen Sie es, wenn Sie fertig sind.InformationsquelleAutor jmoreno
versuchen Sie dies:
InformationsquelleAutor Learning