Αναρτήσεις

Εμφάνιση αναρτήσεων με την ετικέτα SQL Server

Αναζήτηση μιας τιμής οπουδήποτε στη Database - SQL Server

Έστω ότι δουλεύεις πάνω σε μια analytics εφαρμογή κάνοντας reverse engineering στη βάση και ψάχνεις να βρεις σε ποιούς πίνακες βρίσκονται συγκεκριμένες τιμές... Το παρακάτω T-SQL script θα σκανάρει όλη τη βάση και θα βρει σε ποιους πίνακες υπάρχουν οι τιμές αυτές.... To παραπάνω script το βρήκα στο Stack Overflow ...

Configure Database Mail in SQL Server, my two cents...

Εικόνα
Στο σχετικό link στο MSDN για το configuration του Database Mail αναφέρει τα παρακάτω για την συμπλήρωση του πεδίου Server Name: Η πολύ πρόσφατη εμπειρία μου, υποδεικνύει ότι καλύτερα να συμπληρωθεί η IP του SMTP server και όχι το όνομα του στο σχετικό πεδίο αφού για κάποιο λόγο ακατανόητο σε εμένα ο SQL Server δεν μπορούσε με τίποτα να στείλει email όταν το server name ήταν της μορφής "smtp . <your_company> . com" ...

Περηφάνια...

Φουσκώνω από περηφάνια σαν το παγόνι, πριν από λίγη ώρα έκλεισα το τηλέφωνο σε μια κλήση απο το Redmond, από τα κεντρικά της Microsoft, όπου κλήθηκα να καταθέσω τις εμπειρίες μου και τις απόψεις μου έτσι ώστε να βγουν χρήσιμα συμπεράσματα που θα βοηθήσουν στην βελτίωση του SQL Server... Ζητήθηκε η άποψη από 100 περίπου προγραμματιστές από όλο τον κόσμο κι εγώ ήμουν ένας από αυτούς...

T-SQL script για μαζική διαγραφή των table constraints μιας database...

Τις τελευταίες μέρες, όπως φάνηκε και από το προηγούμενο post, η δουλειά τα έφερε έτσι ώστε να ξοδέψω τον περισσότερο μου χρόνο στο γραφείο δουλεύοντας με τον SQL Server... Ανέκαθεν τον θεωρούσα το καλύτερο από τα σχετικά προϊόντα διότι κατά τη γνώμη μου έχει το υψηλότερο μέσο όρο όσον αφορά τις επιδόσεις των χαρακτηριστικών του, μπορεί να μην είναι ο καλύτερος συγκριτικά με άλλες databases σε επί μέρους χαρακτηριστικά αλλά συνολικά είναι (για μένα) η καλύτερη database ... Δουλεύοντας λοιπόν, χρειάστηκε σε κάποιο σημείο να διαγράψω κάποια tables από μια development database τα οποία όμως είχαν διάφορα foreign keys που με την σειρά τους εμπόδιζαν τη διαγραφή των tables, οπότε έπρεπε να διαγραφούν πρώτα τα foreign keys και σίγουρα δεν ήθελα να το κάνω manually από το gui του Management Studio, ψάχνοντας και σβήνοντας τα ένα ένα ... Το παρακάτω script ήταν μια ευκαιρία να πετύχω αυτό που ήθελα και να ξεσκονίσω λίγο την T-SQL μου και πολύ το χάρηκα......

Εισαγωγή δεδομένων UTF-8 στον SQL Server...

Εικόνα
Το σημερινό post γράφεται για δύο λόγους: Ο πρώτος είναι ότι όλοι όσοι έχουμε δουλέψει με δεδομένα σε γλώσσες άλλες από αυτές που χρησιμοποιούν το Λατινικό αλφάβητο, ξέρουμε πολύ καλά πόσο μεγάλος μπελάς είναι... Ο δεύτερος είναι ότι επειδή έφαγα σχεδόν δυο μέρες για να καταφέρω να φορτώσω ένα αρχείο txt tab delimited σε μια βάση SQL Server 2008 R2, θέλω να θυμάμαι τον λόγο και την αιτία της ταλαιπωρίας μου έτσι ώστε να μην περάσω τα ίδια αν χρειαστεί να το επαναλάβω μετά από καιρό και να βοηθηθεί και κάποιος άλλος που μπορεί να έχει το ίδιο πρόβλημα και να σπάει το κεφάλι του, όπως έκανα εγώ... Έστω λοιπόν ότι έχετε ένα txt αρχείο με δεδομένα τα οποία περιέχουν πεδία στα ελληνικά, το encoding του αρχείου είναι UTF-8 και δουλεύετε σε ένα μηχάνημα που το locale του είναι Greek... Δοκιμάζοντας να κάνετε import το αρχείο σε μια βάση SQL Server μέσω του Management Studio πιθανότατα δεν θα το καταφέρετε με την πρώτη... Κατά πάσα πιθανότητα το error που θα συναντήσετε οι περισσότεροι θ...

Υπολογισμός ελληνικών εργάσιμων ημερών με SQL...

Πολλές φορές δουλεύοντας με δεδομένα θα χρειαστεί να τροποποιήσετε τον κώδικά σας, τον όποιο κώδικα γράφετε, αναλόγως με το αν τα δεδομένα σας αναφέρονται σε εργάσιμες ημέρες ή όχι... Αυτό μπορεί να είναι συχνά μπελάς αν συνυπολογίσεις ότι υπάρχουν κινητές γιορτές και αργίες, όπως το Πάσχα, οι οποίες διαφέρουν κιόλας αναλόγως αν αναφέρεσαι στο Πάσχα των Καθολικών ή των Ορθοδόξων... Ένας εύκολος τρόπος να υπολογιστούν οι εργάσιμες μέρες του ελληνικού εορτολογίου είναι το παρακάτω T-SQL script το οποίο αφού τρέξετε σε κάποιο SQL Server instance, παράγει για το διάστημα το οποίο έχετε ορίσει, ένα table το οποίο περιέχει ανά ημερομηνία, τον μήνα και το έτος που ανήκει αυτή, την ονομασία της ημέρας, ένδειξη αν είναι εργάσιμη ή όχι και ένδειξη αν είναι η τελευταία εργάσιμη κάθε μήνα ή όχι.... Το script αυτό μπορείτε να το χρησιμοποιείτε είτε σε stored procedures ή common table expressions για πιο ad hoc χρήση, είτε one off υπολογίζοντας τις εργάσιμες μέρες για ένα μεγάλο χρονικό διάστη...

Προστατεύοντας τα κεκτημένα μου...

Βρίσκομαι σε μια περίεργη κατάσταση όσον αφορά τα επαγγελματικά μου... Η τοποθέτησή μου στο νέο πόστο από αρχές Ιανουαρίου, από την μία μου άνοιξε ένα καινούργιο κόσμο, τόσο τεχνολογικά όσο και σαν τρόπος δουλειάς, από την άλλη όμως με ξανάφερε στο επίπεδο του junior developer καθώς πλέον δεν κάνω σχεδόν τίποτα από όσα έκανα στα προηγούμενα 9 χρόνια επαγγελματικής πορείας... Δεν κρύβω ότι αυτό με έχει ρίξει πολύ καθώς είναι δυσβάσταχτο για μένα να ξεκινήσω πάλι από το μηδέν στα 36, να αποδείξω τι είμαι από την αρχή ενώ το επαγγελματικό παρελθόν μου απουσιάζει από την εξίσωση, φαίνεται να μην αφορά και να μην ενδιαφέρει αυτούς που βρίσκονται στις θέσεις πιο πάνω από εμένα... Οι καιροί είναι περίεργοι, ο κλάδος που εργάζομαι πρωταγωνιστεί σε κάθε δυσοίωνη φημολογία κι εγώ νιώθω ότι πρέπει να προστατευτώ από πιθανές επαναλήψεις όσων έζησα πριν από ένα χρόνο και κάτι... Πρέπει να κρατήσω επαφή με τα όσα έχω κάνει τόσα χρόνια, να τα πιστοποιήσω και να τα χρησιμοποιήσω υπέρ μου, να...