Lagrade procedurer lagras inte som filer, de lagras som metadata och exponeras för oss peoner (tack Michael för påminnelsen om sysschobjs
) i katalogvyerna sys.objects
, sys.procedures
, sys.sql_modules
, etc. För en individuell lagrad procedur kan du fråga definitionen direkt med dessa vyer (framför allt sys.sql_modules.definition
) eller med OBJECT_DEFINITION()
fungera som Nicholas påpekade
(även om hans beskrivning av syscomments
är inte helt korrekt).
För att extrahera alla lagrade procedurer till en enda fil skulle ett alternativ vara att öppna Objektutforskaren, expandera din server> databaser> din databas> programmerbarhet
och markera de lagrade procedurerna
nod. Tryck sedan på F7 (Visa> Object Explorer Detaljer
). På höger sida, välj alla procedurer du vill ha, högerklicka sedan, script lagrad procedur som> skapa till> fil
. Detta kommer att skapa en enda fil med alla de procedurer du har valt. Om du vill ha en enda fil för varje procedur kan du använda den här metoden genom att bara välja en procedur åt gången, men det kan vara tråkigt. Du kan också använda den här metoden för att skripta alla redovisningsrelaterade procedurer till en fil, alla ekonomirelaterade procedurer till en annan fil, etc.
Ett enklare sätt att skapa exakt en fil per lagrad procedur skulle vara att använda Generera Skriptguiden
- igen, med början från Objektutforskaren - högerklicka på din databas och välj Tasks> Generate scripts
. Välj Välj specifika databasobjekt
och kontrollera toppnivån Lagrade procedurer
låda. Klicka på Nästa. För utmatning väljer du Spara skript till en specifik plats
, Spara till fil
, och Enskild fil per objekt.
Dessa steg kan skilja sig något beroende på din version av SSMS.