Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Προβλημα με δύο SQL Servers 2005

Îåêßíçóå áðü ôï ìÝëïò Vader. Τελευταία δημοσίευση από το μέλος Vader στις 10-04-2007, 15:06. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  03-04-2007, 14:20 27753

    Προβλημα με δύο SQL Servers 2005

    Καταρχήν έχω δύο SQL Servers 2005 linked μεταξύ τους. Εχω στον ένα μια βάση η οποία έχει κάποιους πίνακες που βρίσονται σε κάποια άλλη βάση στον άλλον sql server.
    Το link ξέρω ότι δουλεύει γιατί μέσα από την μία ή αλλή βάση βλέπω την άλλη....Η σύνδεση τους γίνετται μέσα από ειδική σύνδεση με ξεχωριστές κάρτες ethernet και ανεστραμένω καλώδιο.  Οι βάσεις έχουν μέσα stored procedures και views.  Οταν πάνω να τρέξω από την μια βάση κάποια stored procedures που καλούν πίνακες από την άλλη βάση μου βγάζει το παρακάτω error:

    "Heterogeneous queries require the ANSI_NULLS and ANSI_WARNINGS options to be set for the connection. This ensures consistent query semantics. Enable these options and then reissue your query."

    Από forums  και help βρήκα ότι αν πάω και βάλω set commands σε όλα τα stored procedures μάλον θα το τρέξει αλλα θέλω να το κάνω globaly  γιατί έχω πραγματικά πολλά stored procedures....

    Καμία ιδέα..?

    Οταν τρέχω μέσα από το .net το αντιστοιχο query που στέλνει στην βάση το procedure εκτελείται κανονικά.....
  •  10-04-2007, 00:11 28371 σε απάντηση της 27753

    Απ: Προβλημα με δύο SQL Servers 2005

    Αυτά τα SET options μπορείς να τα ορίσεις σε διάφορα επίπεδα, ξεκινώντας από το connection και φτάνοντας στον TSQL κώδικα της stored procedure. Αν τα ορίσεις στο επίπεδο του connection τότε δεν χρειάζεται να τα ξαναορίσεις (όσο διαρκεί αυτό). Αν δεν τα ορίσεις πουθενά, τότε χρησιμοποιούνται τα default SET options που ορίζονται στα properties της βάσης, ωστόσο χρειάζεται προσοχή γιατί καμιά φορά μπορεί να οριστούν SET options από άλλους (πχ σε ODBC connections) χωρίς να το πάρεις χαμπάρι. Εν ολίγοις, είναι πολύ καλή προγραμματιστική τακτική να ορίζεις αυτά τα SET μέσα στις stored procedures σου γιατί έτσι εξασφαλίζεις ότι θα τρέχουν με το συγκεκριμένο SET "περιβάλλον" που θέλεις.


    Vir prudens non contra ventum mingit
  •  10-04-2007, 12:58 28414 σε απάντηση της 28371

    Απ: Προβλημα με δύο SQL Servers 2005

    KelMan:

    Αυτά τα SET options μπορείς να τα ορίσεις σε διάφορα επίπεδα, ξεκινώντας από το connection και φτάνοντας στον TSQL κώδικα της stored procedure. Αν τα ορίσεις στο επίπεδο του connection τότε δεν χρειάζεται να τα ξαναορίσεις (όσο διαρκεί αυτό). Αν δεν τα ορίσεις πουθενά, τότε χρησιμοποιούνται τα default SET options που ορίζονται στα properties της βάσης, ωστόσο χρειάζεται προσοχή γιατί καμιά φορά μπορεί να οριστούν SET options από άλλους (πχ σε ODBC connections) χωρίς να το πάρεις χαμπάρι.


    Εν ολίγοις, είναι πολύ καλή προγραμματιστική τακτική να ορίζεις αυτά τα SET μέσα στις stored procedures σου γιατί έτσι εξασφαλίζεις ότι θα τρέχουν με το συγκεκριμένο SET "περιβάλλον" που θέλεις. Σκέψου ότι αν το έκανα έτσι θα ήθελα να πειράξω καμια 300-400 stored procedure. Surprise Δεν γίνονται αυτά τα πράγματα.

    Θα δοκιμάσω ξανά αυτά τα options που είναι στα Misc της βάσης. Μπορεί να έχω κάνει λάθος εγώ γιατί είμαι σίγουρος ότι αυτά τα δοκίμασα αυτά. Αλλα επειδή έχει περάσει πολύς καιρός δεν είμαι και τόσο σίγουτος τώρα. Θα το ξανα δοκιμάσω και θα σας πω...Smile

  •  10-04-2007, 13:15 28417 σε απάντηση της 28414

    Απ: Προβλημα με δύο SQL Servers 2005

    Όπου υπάρχει θέληση, υπάρχει τρόπος Smile

    Αν είναι να κάνεις κάτι τέτοιο μπορείς να το κάνεις με κάποιο "αυτοματοποιημένο" τρόπο και όχι χειροκίνητα. Πχ μπορείς να πάρεις σε script τον κώδικα από όλες τις stored procedures και να εισάγεις τα SET με find/replace. Ή μπορείς ακόμα και με TSQL script να κάνεις μαζικό editing στις stored procedures. Ιδιαίτερα αν πρόκειται για stored procedures που είναι generated από κάποιο εργαλείο...


    Vir prudens non contra ventum mingit
  •  10-04-2007, 15:06 28432 σε απάντηση της 28417

    Απ: Προβλημα με δύο SQL Servers 2005

    KelMan:

    Όπου υπάρχει θέληση, υπάρχει τρόπος Smile

    Αν είναι να κάνεις κάτι τέτοιο μπορείς να το κάνεις με κάποιο "αυτοματοποιημένο" τρόπο και όχι χειροκίνητα. Πχ μπορείς να πάρεις σε script τον κώδικα από όλες τις stored procedures και να εισάγεις τα SET με find/replace. Ή μπορείς ακόμα και με TSQL script να κάνεις μαζικό editing στις stored procedures. Ιδιαίτερα αν πρόκειται για stored procedures που είναι generated από κάποιο εργαλείο...




    Μωρέ έχεις απόλυτο δίκιο ....Θα δείξει ..Σε λίγες μέρες θα το δοκιμάσω και θα σας πω ....νεώτεραBig Smile

    Εχεις δοκιμάσει απόδοση γενικά αυτό το σενάριο που θέλω να στήσω ? Σε σχέση πάντα με το να ήταν οι δύο βάσεις μια και σε ένα server ?
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems