Lagrede procedurer gemmes ikke som filer, de gemmes som metadata og eksponeres for os peoner (tak Michael for påmindelsen om sysschobjs
) i katalogvisningerne sys.objects
, sys.procedures
, sys.sql_modules
, osv. For en individuel lagret procedure kan du forespørge definitionen direkte ved hjælp af disse visninger (vigtigst sys.sql_modules.definition
) eller ved at bruge OBJECT_DEFINITION()
fungere som Nicholas påpegede
(selvom hans beskrivelse af syscomments
er ikke helt nøjagtig).
For at udtrække alle lagrede procedurer til en enkelt fil, ville en mulighed være at åbne Objekt Explorer, udvide din server> databaser> din database> programmerbarhed
og marker de lagrede procedurer
node. Tryk derefter på F7 (Se> Object Explorer-detaljer
). I højre side skal du vælge alle de procedurer, du ønsker, og derefter højreklikke, script lagret procedure som> oprette til> fil
. Dette vil producere en enkelt fil med alle de procedurer, du har valgt. Hvis du vil have en enkelt fil for hver procedure, kan du bruge denne metode ved kun at vælge én procedure ad gangen, men det kan være kedeligt. Du kan også bruge denne metode til at skrive alle regnskabsrelaterede procedurer til én fil, alle finansrelaterede procedurer til en anden fil osv.
En nemmere måde at generere præcis én fil pr. lagret procedure på ville være at bruge Generere Scripts guiden
- igen, startende fra Objekt Explorer - højreklik på din database og vælg Opgaver> Generer scripts
. Vælg Vælg specifikke databaseobjekter
og tjek lagrede procedurer
på øverste niveau boks. Klik på Næste. For output skal du vælge Gem scripts til en bestemt placering
, Gem i fil
, og Enkelt fil pr. objekt.
Disse trin kan være lidt anderledes afhængigt af din version af SSMS.