mercoledì 26 novembre 2014

INSERIRE UN COMMENTO TRAMITE PROCEDURA SQL


Sull'argomento "commentare un database Microsoft SQL Server" non abbiamo semplicemente speso parole, abbiamo realizzato insieme un vero e proprio progetto, partendo dalle basi fino ad arrivare alla sua realizzazione. Oggi vediamo come inserire i commenti direttamente in SQL tramite le interfacce o le procedure messe a disposizione dall'ambiente SQL Server e il linguaggio T-SQL.



Microsoft SQL Server Management Studio

L'interfaccia grafica più utilizzata per accedere ai dati di un database SQL Server è Microsoft SQL Server Management Studio che mette a disposizione facili strumenti visuali (drag-n-drop, wizard, syntax checker, sql editor...) per realizzare graficamente e tramite procedura guidata, le medesime operazioni che possono essere fatte tramite il linguaggio TSQL.


La MS_Description di SQL Server

Il commmento in ambiente SQL Server viene chiamata "descrizione", nello specifico viene utilizzata la keyword MS_Description. Questa a tutti gli effetti è una proprietà estesa di un oggetto SQL Server (tabella, colonna, vista , trigger, procedura...). Ad un oggetto possono essere inserite un qualsiasi numero di proprietà estese a patto che contengano un valore testuale). L'insieme di tutte le extended properties è fornito dalla vista di sistema sys.extended_properties dove sono presenti di default già una serie di proprietà interne al database engine di Microsoft.


MS_Description tramite GUI

Non tutti i commenti si possono visualizzare o inserire tramite Microsoft SQL Server Management Studio, e non tutti sono presenti nel solito posto. Vediamo insieme tutte le procedure per visualizzare una MS_Description in maniera "visuale":
  1. TABELLA: Selezionare una tabella nell'elenco delle tabelle, eseguire il click con il tasto destro del mouse e selezionare la voce Modifica (Design) quindi premere il tasto F4 (visualizza finestra proprietà). La MS_Description è contenuta nella casella "descrizione" della finestra delle proprietà, liberamente editabile da tastiera.
  2. COLONNA: Il procedimento è identico rispetto a quello della tabella, l'unica differenza si ha nel fatto che la descrizione è inserita nella finestra di proprietà della colonna e non nelle proprietà della tabella.
  3. VISTA o STORED PROCEDURE: In questo caso non abbiamo un campo relativo nella finestra delle proprietà, per accedere alla MS_Description è necessario selezionare l'elemento Vista o Stored Procedure dalla finestra di esplorazione oggetti, selezionare la voce Proprietà del menu contestuale e selezionare la voce Proprietà Estese del menu a sinistra (vengono elencate TUTTE le proprietà estese legate all'oggetto).
Come potete notare da questo elenco manca l'oggetto TRIGGER, infatti per questo oggetto Microsoft non mette a disposizione una visualizzazione testuale delle proprietà estese, anche se è possibile assegnarle o leggerle tramite script TSQL.


MS_Description tramite Script

Vediamo dunque quale script è necessario utilizzare per leggere o scrivere una proprietà estesa tramite script TSQL. Partiamo dal fatto che le proprietà estese vengono inserite (su qualsiasi oggetto) sempre dalla stored procedure di sistema SP_ADDEXTENDEDPROPERTY a cui devono essere passati diversi parametri:

exec sp_addextendedproperty
 'property_name','property_value',
'Schema','my_schema_name',
'Element','Element_name',
'Sub_Element','Sub_Element_Name'

Nello specifico "Element" potrà essere: 'Table' o 'View' o 'Procedure';
Nello specifico "Sub_Element" potrà essere: 'Column' o 'Trigger';

Ricapitolando, se volessi inserire il commento nella colonna "nome" della tabella "utenti" la mia sintassi sarà:

exec sp_addextendedproperty 'MS_Description','Nome Utente','Schema','dbo','Table','Utenti','Column','Nome'


Conclusione

Abbiamo visto che è molto semplice inserire un commento tramite tutti gli strumenti messi a disposizione sia dal Management Studio che dal linguaggio TSQL. Naturalmente le proprietà estese possono essere diverse e avere nomi diversi a piacere per rispondere di volta in volta alle vostre necessità. 


ATTENZIONE: Non è garantita la compatibilità e la portabilità dell proprietà estese, effettuando backup e restore con versioni diverse di SQL Server da quella in uso.

Nessun commento:

Posta un commento