Istruzioni non documentate in SQL Server

di Luca Bianchi, in SQL Server,

In SQL Server sono incluse una serie di istruzioni che non risultano essere documentate nel BOL ne in altre fonti ufficiali.
Si tratta per lo più di comandi utilizzati per scopi interni da parte del team di sviluppo di SQL Server e benchè talune di queste istruzioni siano a loro volta utilizzate in altre stored procedure (questa volta documentate), MS ne scoraggia comunque l'utilizzo non tanto per possibili bug quanto perchè si riserva di modificarne il comportamento con l'applicazione di una fix, un service pack o in una versione successiva.
Ma come si fa a resistere ad utilizzare una istruzione che restituisca il numero dei record presenti in tutte le tabelle di un db utilizzando

EXEC sp_MSforeachtable 'SELECT ''?'', COUNT (*) FROM ?'

oppure ad un unico comando per ricostruire tutti gli indici di un database

DBCC DBREINDEXALL(nomedb)

Forse non si può resistere, ma sicuramente occorre prestare la massima cautela e far si che l'utilizzo di una istruzione non documentata non si riveli un problema se la funzionalità venisse rimossa o modificata. Va bene quindi utilizzare tali comandi per scopi amministrativi o esecuzioni "one shot one time" ma è sicuramente da evitarne l'utilizzo nel codice di una applicazione.

Ma dove si trovano informazioni su questo tipo di istruzioni? In questi 3 link è possibile trovare informazioni su alcune stored procedure, extended stored procedure e comandi DBCC non documentati. Nessun elenco potrà mai essere esaustivo ma se nei database di sistema vedete una stored procedure il cui nome vi fa venire in mente che possa tornarvi utile, sbirciarne il codice e/o fare una ricerca con "San Google" può venirvi in aiuto.

Bye

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese