Ο Microsoft SQL Server υποστηρίζει επτά ξεχωριστές κατηγορίες δεδομένων. Από αυτές, οι δυαδικές χορδές επιτρέπουν την κωδικοποίηση δεδομένων που αντιπροσωπεύονται ως δυαδικά αντικείμενα.
Οι τύποι δεδομένων στην κατηγορία δυαδικών συμβολοσειρών περιλαμβάνουν:
- bit μεταβιβάζει ένα μόνο bit με τιμή 0, 1 ή NULL .
- οι δυαδικές (n) μεταβλητές αποθηκεύουν n byte δυαδικών δεδομένων σταθερού μεγέθους. Αυτά τα πεδία ενδέχεται να αποθηκεύουν έως και 8.000 byte.
- οι μεταβλητές varbinary (n) αποθηκεύουν δυαδικά δεδομένα μεταβλητού μήκους περίπου n byte. Μπορούν να αποθηκεύουν έως και 8.000 byte.
- Οι varbinary (max) μεταβλητές αποθηκεύουν δυαδικά δεδομένα μεταβλητού μήκους περίπου n byte. Μπορούν να αποθηκεύουν το πολύ 2 GB και να αποθηκεύουν πραγματικά το μήκος των δεδομένων συν επιπλέον δύο byte.
- οι μεταβλητές εικόνας αποθηκεύουν δεδομένα έως 2 GB και χρησιμοποιούνται συνήθως για την αποθήκευση οποιουδήποτε τύπου αρχείου δεδομένων (όχι μόνο εικόνων).
Ο τύπος εικόνας έχει προγραμματιστεί για απόσπαση σε μια μελλοντική έκδοση του SQL Server. Οι μηχανικοί της Microsoft συστήνουν τη χρήση varbinary (max) αντί για τύπους εικόνων για μελλοντική ανάπτυξη.
Κατάλληλες χρήσεις
Χρησιμοποιήστε στήλες bit όταν πρέπει να αποθηκεύσετε ναι ή όχι είδη δεδομένων όπως αντιπροσωπεύονται από μηδενικά και αυτά. Χρησιμοποιήστε δυαδικές στήλες όταν το μέγεθος των στηλών είναι σχετικά ομοιόμορφο. Χρησιμοποιήστε ανασυνδυασμένες στήλες όταν το μέγεθος της στήλης αναμένεται να υπερβαίνει τα 8Κ ή μπορεί να υπόκειται σε σημαντική μεταβλητότητα στο μέγεθος ανά εγγραφή.
Μετατροπές
T-SQL - η παραλλαγή της SQL που χρησιμοποιείται στον Microsoft SQL Server - τα δεδομένα pads όταν μετατρέπετε από οποιοδήποτε τύπο συμβολοσειράς σε δυαδικό ή varbinary τύπο. Οποιαδήποτε άλλη μετατροπή τύπου σε δυαδικό τύπο αποδίδει ένα αριστερό πεδίο. Αυτή η επένδυση πραγματοποιείται μέσω της χρήσης δεκαδικών μηδέν.
Λόγω αυτής της μετατροπής και του κινδύνου περικοπής, εάν το πεδίο μετά τη μετατροπή δεν είναι αρκετά μεγάλο, είναι πιθανό τα πεδία που έχουν μετατραπεί να οδηγήσουν σε αριθμητικά σφάλματα χωρίς να πετάξουν ένα μήνυμα σφάλματος.