Σημέρα ένας αγαπητός συνάδελφος έρχεται στο γραφείο μου και μου κάνει την εξής ερώτηση:
«Υπάρχει κανένας τρόπος με τον οποίο μπορώ να δω το μέγεθος των πραγματικών δεδομένων που έχουν αποθηκευτεί στην βάση μου σε ένα πεδίο τύπου image;»
Σίγουρα η πρώτη σκέψη όλων μας θα πάει στην LEN(), αλλά αυτή όμως δεν παίζει με πεδία τύπου image, text, ntext.
Αντί για αυτή μπορούμε να χρησιμοποιήσουμε την DATALENGTH() η οποία επιστρέφει το μέγεθος σε bytes και η οποία φυσικά μπορεί να χρησιμοποιηθεί και για όλα τα άλλα data types του SQL Server.
Ένα παράδειγμα
Έστω ότι έχω τον πίνακα Α
CREATE TABLE A ( ID INT PRIMARY KEY NOT NULL, PHOTO IMAGE )
Μπορώ να διαβάζω το πραγματικό αποθηκευμένο μέγεθος στο πεδίο PHOTO με ένα απλό query
SELECT ID, DATALENGTH(PHOTO) SizeInBytes, DATALENGTH(PHOTO)/1024 SizeInKB FROM A
Αυτά για την ώρα, καλή σας ημέρα και καλό SQL Server programming ;)