That's something of a broad question there. XML doesn't store anything - it's a mark up language. You store your data as XML, and you could do this in a file or a database or something. SQL is a query language for querying relational databases. Typically databases are geared to storing things in a tabular fashion. If the data you want to store is hierarchial in nature then XML is a good choice, if tabular then a database table is a good choice. Sql Server 2005 has quite good support for XML and you can use XQuery within stored procs to query stuff stored as XML.
Regards, Rob Philpott.