Καθώς η ερώτηση αφορά μόνο τον SQL Server τη μετέφερα εδώ.
Όσον αφορά το LIKE, η καλύτερη πηγή είναι το Books Online του SQL Server, αλλά εν συντομία συντάσσεται: WHERE Surname LIKE 'Pap%' . To 'Pap%' ονομάζεται search pattern. To % αποτελεί wildcard για την αναζήτηση. Το παραπάνω query θα επιστρέψει όλα τα επώνυμα που αρχίζουν με Pap. H Like δέχεται και άλλα σύμβολα πέρα από το % αλλά αυτά θα τα βρεις στο BOL.
Αντί για search pattern μπορείς να περάσεις μία παράμετρο με το pattern string, π.χ. LIKE @search . Δεν μπορείς όμως να ενσωματώσεις παράμετρο στο pattern, δηλαδή δεν μπορείς να γράψεις LIKE '@search%'. Μπορείς όμως να ενώσεις διάφορα strings, π.χ. LIKE @search + '%'
To WHERE που γράφεις δεν το πολυκατάλαβα. Μοιάζει με κώδικα VB και αν κατάλαβα προσπαθείς να ενώσεις το @search με το % ? Έτσι όμως θα πάρεις ένα statement που θα λέει WHERE surname LIKE @search% . Θα έπρεπε να γράψεις "WHERE surname LIKE @search + '%'" ή ακόμα καλύτερα, "WHERE surname LIKE @search" και να φτιάχνεις το search στον κώδικα.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos