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

Τρίτη, 7 Φεβρουαρίου 2017

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

Στο σχετικό link στο MSDN για το configuration του Database Mail αναφέρει τα παρακάτω για την συμπλήρωση του πεδίου Server Name:

server name

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

Τρίτη, 5 Απριλίου 2016

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

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

Τετάρτη, 23 Δεκεμβρίου 2015

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 μου και πολύ το χάρηκα.... Εδώ οφείλω να πω ότι οποιοσδήποτε θέλει να το χρησιμοποιήσει ή να το τροποποιήσει πρέπει να είναι  εξαιρετικά προσεκτικός και να γνωρίζει με σιγουριά τι θέλει να κάνει και τι αποτελέσματα θα έχει αυτό που θα κάνει διότι οποιοδήποτε λάθος ή παράλειψη όταν "παίζουμε" με τα system tables του SQL Server μπορεί να έχει πολύ άσχημα αποτελέσματα για τη database...

Κατά τ' άλλα, χρησιμοποιήστε το κατά βούληση... :)

Τρίτη, 22 Δεκεμβρίου 2015

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

Το σημερινό post γράφεται για δύο λόγους: Ο πρώτος είναι ότι όλοι όσοι έχουμε δουλέψει με δεδομένα σε γλώσσες άλλες από αυτές που χρησιμοποιούν το Λατινικό αλφάβητο, ξέρουμε πολύ καλά πόσο μεγάλος μπελάς είναι... Ο δεύτερος είναι ότι επειδή έφαγα σχεδόν δυο μέρες για να καταφέρω να φορτώσω ένα αρχείο txt tab delimited σε μια βάση SQL Server 2008 R2, θέλω να θυμάμαι τον λόγο και την αιτία της ταλαιπωρίας μου έτσι ώστε να μην περάσω τα ίδια αν χρειαστεί να το επαναλάβω μετά από καιρό και να βοηθηθεί και κάποιος άλλος που μπορεί να έχει το ίδιο πρόβλημα και να σπάει το κεφάλι του, όπως έκανα εγώ...

Έστω λοιπόν ότι έχετε ένα txt αρχείο με δεδομένα τα οποία περιέχουν πεδία στα ελληνικά, το encoding του αρχείου είναι UTF-8 και δουλεύετε σε ένα μηχάνημα που το locale του είναι Greek... Δοκιμάζοντας να κάνετε import το αρχείο σε μια βάση SQL Server μέσω του Management Studio πιθανότατα δεν θα το καταφέρετε με την πρώτη... Κατά πάσα πιθανότητα το error που θα συναντήσετε οι περισσότεροι θα αναφέρει ότι υπάρχουν δύο encodings στο αρχείο, ότι το UTF-8 είναι unsupported στον SQL Server (δεν ξέρω αν αυτό ισχύει για όλες τις εκδόσεις του) και διάφορα άλλα ενοχλητικά μηνύματα...

Το πρόβλημα λύνεται με τον εξής απλό τρόπο:

Όταν σετάρουμε τα options του Import Wizard στο Management Studio πρέπει να κάνουμε τις παρακάτω επιλογές:

mssql2008-import-wizard-1

mssql2008-import-wizard-2

Με λίγα λόγια, πρέπει να ορίσουμε στον Import Data Source Wizard το locale σε "English (United States)" και το encoding σε "65001 (UTF-8)"... Κατόπιν, στο μενού Advanced, πρέπει να ορίσουμε το data type όλων των πεδίων σε "Unicode_string [DT_WSTR]"... Στην συνέχεια πατάμε διαρκώς Next μέχρι να φτάσουμε στο τέλος του Wizard... Τα δεδομένα θα φορτωθούν στη βάση μας, στο default αρχείο που θα παράξει ο Wizard και από εκεί και πέρα είναι πολύ απλό να κάνεις όλα τα απαραίτητα transformations και να τα φορτώσεις στον τελικό πίνακα με τα σωστά data types... Τόσο απλά!

Οι εικόνες και το credit ανήκουν στην GeoDataSource ...

Δευτέρα, 2 Νοεμβρίου 2015

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

Πολλές φορές δουλεύοντας με δεδομένα θα χρειαστεί να τροποποιήσετε τον κώδικά σας, τον όποιο κώδικα γράφετε, αναλόγως με το αν τα δεδομένα σας αναφέρονται σε εργάσιμες ημέρες ή όχι... Αυτό μπορεί να είναι συχνά μπελάς αν συνυπολογίσεις ότι υπάρχουν κινητές γιορτές και αργίες, όπως το Πάσχα, οι οποίες διαφέρουν κιόλας αναλόγως αν αναφέρεσαι στο Πάσχα των Καθολικών ή των Ορθοδόξων...

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

Η επιλογή δικής σας...

Τρίτη, 10 Ιουνίου 2014

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

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

Δεν κρύβω ότι αυτό με έχει ρίξει πολύ καθώς είναι δυσβάσταχτο για μένα να ξεκινήσω πάλι από το μηδέν στα 36, να αποδείξω τι είμαι από την αρχή ενώ το επαγγελματικό παρελθόν μου απουσιάζει από την εξίσωση, φαίνεται να μην αφορά και να μην ενδιαφέρει αυτούς που βρίσκονται στις θέσεις πιο πάνω από εμένα...

Οι καιροί είναι περίεργοι, ο κλάδος που εργάζομαι πρωταγωνιστεί σε κάθε δυσοίωνη φημολογία κι εγώ νιώθω ότι πρέπει να προστατευτώ από πιθανές επαναλήψεις όσων έζησα πριν από ένα χρόνο και κάτι... Πρέπει να κρατήσω επαφή με τα όσα έχω κάνει τόσα χρόνια, να τα πιστοποιήσω και να τα χρησιμοποιήσω υπέρ μου, να δείξω προς τα έξω ποιος είμαι και τι έχω κάνει...

Με λίγα λόγια... MCSA