Ετικέτα: sql server

  • άλλη μια ώρα χαμένη με τα τερτίπια του sql server

    Οκ, ας το πιάσουμε από την καλή, είναι καλός, γρήγορος και αξιόπιστος, ο sql server αποτελεί αγαπημένο backend για τις εφαρμογές μας, όμως αν αποφασίσει να σκαλώσει σε πάει πίσω για ώρες και μέρες. Ένα παράξενο κόλλημα είχαμε και σήμερα που, πράγματι, δεν ανήκει στις πιο τυπικές περιπτώσεις, είναι όπως θα δείτε, μια αλληλουχία συμπτώσεων που οδηγούν στο ξεβράκωμα του sql, όμως, αυτό έλειπε, να κόλλαγε στις τυπικές περιπτώσεις!

    Ας πάρουμε όμως τα πράγματα από την αρχή. Ήταν ένα ηλιόλουστο μεσημέρι και κάναμε debugging σε μια παλιά .net εφαρμογή που παρσάρει κάτι παράξενα αρχεία πάραντοξ (!), κάνει κάτι πράξεις και τέλος τα σπρώχνει σε μια database στον sql server που αναλαμβάνει τα περεταίρω. Κι ενώ όλοι θα στοιχημάτιζαν ότι κάτι θα στράβωνε μεταξύ paradox – bde – access – odbc ή κάποιας άλλης παλαιολιθικής οντότητας, το debugging ανέδειξε σφάλμα στο connectivity με τον sql server.

    Τίποτα προφανές: κανένα δικτυακό πρόβλημα, τα συνθηματικά σωστά, ο server πάνω, τι στο καλό; Wtf; -επί το ελληνικότερο!

    (περισσότερα…)

  • sql server, εύρεση του foreign βάσει του primary key

    sql server, εύρεση του foreign βάσει του primary key

    Οκ, αυτό το άρθρο θα είναι σύντομο, καθώς πρόκειται για αντιγραφή από το stackoverflow, αλλά το δίνουμε κι εδώ για reference, χρήσιμο στους χρήστες τους Sql Server που παλεύουν με άγνωστο σχήμα προσπαθώντας να εντοπίσουν τις σχέσεις των πινάκων. Ακολουθεί ένας πολύ κομψός τρόπος.


    SELECT
    o1.name AS FK_table,
    c1.name AS FK_column,
    fk.name AS FK_name,
    o2.name AS PK_table,
    c2.name AS PK_column,
    pk.name AS PK_name,
    fk.delete_referential_action_desc AS Delete_Action,
    fk.update_referential_action_desc AS Update_Action
    FROM sys.objects o1
    INNER JOIN sys.foreign_keys fk
    ON o1.object_id = fk.parent_object_id
    INNER JOIN sys.foreign_key_columns fkc
    ON fk.object_id = fkc.constraint_object_id
    INNER JOIN sys.columns c1
    ON fkc.parent_object_id = c1.object_id
    AND fkc.parent_column_id = c1.column_id
    INNER JOIN sys.columns c2
    ON fkc.referenced_object_id = c2.object_id
    AND fkc.referenced_column_id = c2.column_id
    INNER JOIN sys.objects o2
    ON fk.referenced_object_id = o2.object_id
    INNER JOIN sys.key_constraints pk
    ON fk.referenced_object_id = pk.parent_object_id
    AND fk.key_index_id = pk.unique_index_id
    ORDER BY o1.name, o2.name, fkc.constraint_column_id

  • sql server express

    sql server express

    Αν η εφαρμογή σας δεν έχει ανάγκη από clustering, replication, analysis & reporting services και άλλα κόλπα που δίνουν τα μεγάλα αδέλφια της οικογένειας του sql server, τότε ο sql server express αποτελεί μια αξιόπιστη λύση που δεν θα σας προδώσει, όσο οι απαιτήσεις της εφαρμογής παραμένουν χαμηλά.

    Για την ιστορία, οφείλουμε να πούμε ότι από έκδοση σε έκδοση του express η Microsoft επιτρέπει όλο και μεγαλύτερες ΒΔ: ο sql server express 2005 διαχειριζόταν μέγιστο μέγεθος ΒΔ 4 GB, ενώ ο 2014 επιτρέπει έως 10 GB. Δυστυχώς αυτό δεν ισχύει για CPU και RAM, 10 χρόνια μετά, η μέγιστη αξιοποίηση της RAM παραμένει στο 1 GB.

    Περισσότερα για τους περιορισμούς του express ως προς τα features και την αξιοποίηση των πόρων του συστήματος εδώ.

     

  • sql server + ημερομηνίες

    sql server + ημερομηνίες

    Τα ημερολογιακά φίλτρα είναι σημαντικά σε όλες τις γλώσσες προγραμματισμού, αλλά πολλές φορές “σπάμε το κεφάλι μας” για το πως θα βρούμε την πρώτη Δευτέρα του τρέχοντος μήνα, για το πως θα ζητήσουμε την περίοδο των τελευταίων 40 ημερών κοκ. Αν και η λογική είναι παρόμοια σχεδόν σε όλες τις γλώσσες, η καθεμία έχει την ιδιαιτερότητα που μας κάνει να ξεχνάμε την ακριβή σύνταξη. Και επειδή χρησιμοποιούμε τον sql server συχνά σαν db engine για τα δεδομένα μας, ας δούμε μερικές χρήσιμες συναρτήσεις που βοηθούν στον προσδιορισμό των περιόδων.

    (περισσότερα…)