Come minimo, lo si documenta come si farebbe con una funzione o un metodo nel codice sorgente. Ad esempio:
- Che cosa fa la stored procedure? Aggiorna o modifica le tabelle o legge i valori?
- Quali sono gli argomenti? Quali sono i loro valori consentiti? Possono essere NULL?
- Cosa viene restituito? È un valore scalare? È un tavolo? Se sì, quali sono i campi e cosa significano i loro valori? Esiste una singola riga o più righe?
- Fornisci un esempio del suo utilizzo
- Esistono procedure memorizzate correlate o simili? Ad esempio, è normalmente utilizzato in combinazione con un'altra procedura memorizzata?
A seconda del tuo ambiente, potrebbe essere o non essere applicabile quanto segue:
- Dovrebbe essere chiamato all'interno di una transazione o no?
- Esistono requisiti di sicurezza speciali? Ad esempio, il chiamante deve accedere a determinate tabelle?
- Esistono bug noti che non sono stati corretti a causa di motivi di compatibilità con le versioni precedenti?
- Questa stored procedure sostituisce altre stored procedure? È obsoleto o deprecato?
- La stored procedure è scritta a mano o generata automaticamente? Se viene generato automaticamente, quale strumento lo ha generato?
- La procedura tratta informazioni riservate come i dettagli della carta di credito, password con hash o informazioni personali identificabili (PII)?
Per la documentazione vera e propria, l'esperienza migliore che ho avuto è stata l'utilizzo di un Wiki. Ogni proc memorizzato aveva una propria pagina e quindi la documentazione era versionata indipendentemente con una cronologia facilmente accessibile e una lista di modifiche. Gli utenti potevano iscriversi alle modifiche via e-mail e la documentazione era sempre in una posizione facilmente accessibile.