2016-08-17 2 views
0

Ich muss ein Skript in T-SQL schreiben (möglicherweise eine gespeicherte Prozedur erstellen?), Die bei der Ausführung eine Liste der gespeicherten Prozeduren ausführen wird.Wie kann ich ein Skript gespeicherter Prozeduren erstellen?

Ich sehe so etwas wie dieser

CREATE PROCEDURE dbo.sproc_execute 
AS 
EXEC sp_CustomSproc 'param1' , 'param2' 
GO 
EXEC sp_CustomSproc 'paramA' , 'paramB' 
GO 
EXEC sp_CustomSproc 'paramX' , 'paramY' 
GO 
EXEC sp_CustomSproc 'param3' , 'param4' 
GO 

Jeden Parameter unterschiedliche Ergebnisse aus der gleichen gespeicherte Prozedur gibt und ist absolut notwendig. Running es sieht aus wie es funktioniert, aber ist es der richtige Weg, es zu tun?

+5

entfernen Sie einfach die 'GO's – Lamak

+0

Was wäre die endgültige Ausgabe? – p2k

+0

Wir haben Daten in einer Tabelle, die Parameter bestimmen die Ausgabe aus dieser Tabelle und werden dann zu einer neuen Tabelle hinzugefügt, um eine Aktion auszuführen. – inFAM1S

Antwort

1

schreiben, das Verfahren wie dieses

CREATE PROCEDURE dbo.sproc_execute 
AS 
BEGIN 

EXEC sp_CustomSproc 'param1' , 'param2' 
EXEC sp_CustomSproc 'paramA' , 'paramB' 
EXEC sp_CustomSproc 'paramX' , 'paramY' 
EXEC sp_CustomSproc 'param3' , 'param4' 

END 
0

Während Sie sicherlich immer wieder die gleiche Prozedur aufrufen können, überlegen, ob es nicht besser wäre, die proc neu zu schreiben, einen Tabellenwertparameter zu verwenden und dann in den Parametern senden Sie wollen. Die Auswahl kann davon abhängen, wie viel dieser Prozess gerade von anderen Prozessen aufgerufen wird. Wenn dies an vielen Orten bereits angewendet wird, ist dies natürlich nicht praktikabel. Aber wenn dies ein neuer Proc ist, der noch nicht zu prod gemacht hat, dann betrachte diese Methode stattdessen. Auf diese Weise müssen Sie, wenn Sie mehrere Parameter zu einem späteren Zeitpunkt ändern müssen, kein neues Proc schreiben, um es aufzurufen.

+0

Die SPROC ist eine vorübergehende Maßnahme, bis wir die Entwicklung der neuen Komponente abgeschlossen haben. Das SPROC wurde auch von jemandem geschrieben, der viel besser informiert ist als ich selbst, daher bin ich teilweise nicht in der Lage, einen neuen zu erstellen. Es wird nur an einer Stelle verwendet, aber es scheint nicht die Zeit wert, um komplett überarbeitet zu werden, da es hier in ein paar Monaten ersetzt wird. Der Kunde benötigt nur das Produkt, um in der Zwischenzeit zu arbeiten. Vielen Dank für Ihren Kommentar, ich habe noch viel zu lernen mit SQL. – inFAM1S

Verwandte Themen