Το πρόβλημα δεν έχει σχέση με τον SQL Server αλλά με το πως έχεις γράψει την εφαρμογή σου. Αν έχεις κάνει το σωστό και αποθηκεύεις τα κείμενα σε πεδία nvarchar, αυτά αποθηκεύονται σαν Unicode οπότε δεν υπάρχει θέμα encoding. Αν χρησιμοποιείς varchar (κακό, γιατί να το κάνεις αυτό?) το τί θα δεις εξαρτάται από το locale του υπολογιστή που αποθήκευσε τα στοιχεία, του collation των πεδίων του πίνακα, και του locale του υπολογιστή που τα διαβάζει. Γι αυτό καλό είναι να μην χρησιμοποιείς varchar πεδία.
Από εκεί και πέρα, εξαρτάται από την εφαρμογή σου, σε τί είναι γραμμένη και αν χειρίζεται σωστά τους Unicode χαρακτήρες. Τα strings του .ΝΕΤ είναι πάντα unicode. Οι εφαρμογές Winforms δεν έχουν κανένα πρόβλημα. Στις εφαρμογές ASP.NET, μπορεί να δημιουργηθεί πρόβλημα αν μπει "καρφωτό" λάθος encoding στη σελίδα (γι αυτό πολλές φορές χρειάζεται να αλλάξεις το encoding από το μενού View). Οι εφαρμογές VB6 χειρίζονται τα strings σαν Unicode πάντα, αλλά τα controls είναι ANSI και θα δείξουν σωστά το κείμενο μόνο στη γλώσσα που έχει επιλέξει ο χρήστης ως locale (π.χ. ελληνικά) ή στα αγγλικά.
Αν η εφαρμογή σου είναι σε C++ θα πρέπει να χρησιμοποιεί TCHAR ή WCHAR, και να έχει γίνει compile με υποστήριξη Unicode.
Επειδή η ερώτηση που κάνεις έχει γίνει πάρα πολλές φορές ως τώρα, έχω γράψει και ένα blog post, "
Ο SQL Server δεν χρειάζεται κόλπα για να υποστηρίξει ελληνικά". Το συμπέρασμα είναι ότι αν αποθηκεύεις σε nvarchar πεδία δεν θα έχεις πρόβλημα. Αλλιώς, θα πρέπει να λάβεις υπόψη τόσο την γλώσσα του χρήστη που εισάγει τα δεδομένα, του χρήστη που τα διαβάζει και το collation των πινάκων.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos