sqlschool.gr logo

articles

Articles of SQLschool.gr Team

An easy way to have a database documentation

Antonios Chatzipavlis
Monday 04 April 2016

Όλοι θέλουμε να έχουμε ένα documentation για κάθε database που παραλαμβάνουμε από άλλους. Μάλιστα εκφράζουμε την δυσαρέσκεια μας όταν κάτι τέτοιο δεν υπάρχει, αλλά αν μας ζητήσουν να φτιάξουμε εμείς κάτι τέτοιο για την database που φτιάχνουμε τότε διαμαρτυρόμαστε ότι αυτό είναι χάσιμο χρόνου ή ότι δεν είναι η δουλεία μας κάτι τέτοιο.

Μπορώ να καταλάβω τις διαφωνίες καθώς οι περισσότεροι θεωρούν ότι θα πρέπει να γράψουν καντάρια κειμένου. Αλήθεια πόσοι από εσάς έχετε πάρει τόμους τεκμηρίωσης στα χέρια σας και τα έχετε διαβάσει όλα;

Αυτό που ζητάει ένας συνάδελφος σε τεκμηρίωση δεν είναι η "Για σας παιδιά". Θέλει κάτι περιεκτικό σύντομο και αναλυτικό. Ένα ER με τους πίνακες σε πρώτη φάση είναι αρκετό. Επίσης σχόλια μέσα στο κώδικα είναι αρκετά για αυτόν που θα παραλάβει. Αλλά επίσης σημαντικό είναι σχόλια στην δομή των πινάκων και ιδιαίτερα στο τι κάνει κάθε πεδίο.

Αυτό μάλιστα το τελευταίο είναι τόσο μα τόσο εύκολο να γίνει κατά στιγμή μάλιστα που δημιουργούμε το κάθε table που με κάνει να αναρωτιέμαι γιατί δεν γίνεται. Ακόμα και αν δεν γίνει την στιγμή αυτή μπορεί να γίνει εκ των υστέρων.

Εάν χρησιμοποιούμε τον table designer που μας δίνει ο SSMS μπορούμε να βάλουμε περιγραφή στο κάθε πεδίο του πίνακα μας στο Description property που υπάρχει στο Column Properties section. Περιγραφή για το table μπορούμε να βάλουμε στο Description property στο Properties window.

image
Description property στο Properties window

Αν φτιάχνουμε το table με script τότε μπορούμε να κάνουμε την δουλειά αυτή με δύο stored procedures τις sp_addextendedproperty και sp_updateextendedproperty

Note

Δείτε ότι μπορείτε να έχετε τα extended properties και για άλλα objects όπως ASSEMBLY, CONTRACT, EVENT NOTIFICATION, FILEGROUP, MESSAGE TYPE, PARTITION FUNCTION, PARTITION SCHEME, REMOTE SERVICE BINDING, ROUTE, SCHEMA, SERVICE, USER, TRIGGER, TYPE, PLAN GUIDE, NULL

Είναι τόσο απλό και εύκολο που αυτός που θα δει ότι έχουν χρησιμοποιηθεί αυτά θα σας συγκαταλέξει στους σοβαρούς επαγγελματίες.

Για αυτόν πλέον είναι αρκετά εύκολο να έχει μια λίστα που να του δίνει ξεκάθαρα την χρήση του κάθε πεδίου και πίνακα και αυτή την λίστα μπορεί να την βγάλει με το παρακάτω query

select
        schema_name(t.schema_id)    as    SchemaName
    ,    t.name                        as    TableName
    ,    ''                            as    TableDescription
    ,    c.name                        as    ColumnName
    ,    y.name                        as    ColumnType
    ,    c.max_length                as    ColumnLenght
    ,    isnull(p.value,'')            as    ColumnDescription
from sys.tables as t
    inner join sys.columns as c on t.object_id=c.object_id
    inner join sys.types as y on c.system_type_id=y.user_type_id
    left outer join sys.extended_properties as p on p.major_id=t.object_id and p.minor_id=c.column_id and p.class=1
union
select distinct
        schema_name(t.schema_id)    as    SchemaName
    ,    t.name                        as    TableName
    ,    isnull(p.value,'')            as    ColumnDescription
    ,    '','','',''
from sys.tables as t
    left outer join sys.extended_properties as p on p.major_id=t.object_id and p.minor_id=0
order by 1,2,3 desc

Antonios Chatzipavlis

Antonios Chatzipavlis

Antonios is a Data Solutions Consultant and Trainer. He has been working in IT since 1988. In his career, he has worked as senior developer, IT Manager, Solutions Architect and IT Consultant. Since 1995 he has been devoted on new technologies and software development tools, mainly by Microsoft, either by training company staff and colleagues or assisting them in design, development and implementation as a consultant or chief developer. He has focused in Databases and Data Science since 1995. He specialized in Microsoft SQL Server since version 6.0 in areas like SQL Server Internals, Database Design and Development, Business Intelligence and in 2010 he has started working with Azure Data Platform, NoSQL databases, Big Data Technologies and Machine Learning. He is an active member of many IT communities in Greece, answering colleagues' questions and writing articles in his web site. He is the owner of SQLschool.gr which is a community portal with a lot of information about Microsoft SQL Server. He has been a Microsoft Certified Trainer (MCT) since 2000. Microsoft honored him as MVP on Data Platform due to his activities in SQL Server since 2010. He holds a large number of Microsoft Certifications and Microsoft SQL Server Certifications since version 6.5.

Tip

What's New in SQL Server 2022 - Episodes

More Tips...

Become a member

If you want to receive updates from us become a member to our community.

Connect

Explore

Learn


sqlschool.gr © 2010-2024 All rights reserved

This site uses cookies for operational and analytics purposes only. By continuing to browse this site, you agree to their use.