Я делал это в прошлых жизнях, используя хранимые процедуры каталога, в которых перечислялись бы все таблицы, столбцы и индексы, и запускал результирующий набор данных на шаблонизаторе (самодельный в то время, но Codesmith соответствовал бы требованиям 100%, умное преобразование xslt).
Вот хранимые процедуры, которые вы можете использовать: http://msdn.microsoft.com/en-us/library/ms182764.aspx
Затем можно выполнить преобразование в процессе или экспортировать весь набор данных в xml.
Ура!