Se você estiver procurando por uma solução TSQL, ela é bastante detalhada, como este exemplo mostra.
Uma alternativa mais curta seria usar a biblioteca SMO (exemplo )
(Eu originalmente respondi isso aqui , mas os desenvolvedores somente do SQL Server provavelmente não relacionam o título da pergunta a esse problema)