SQLDMO (SQL Distributed Management Objects) son un conjunto de objetos COM para administrar una base de datos SQL Server. Nos permiten llevar a cabo un conjunto de funcionalidades como las que generalmente hacemos desde el Management Studio. En particular veremos como generar los scripts de generacion de la base de datos.
Para poder utilizar esta tecnologia primero en un proyecto cualquiera debemos agregar una referencia a los objetos COM. Para ellos lo buscamos en la solapa COM que aparece en el dialogo al hacer click en la opcion "Add References" de la carpeta "References"

Luego podemos conectarnos contra un servidor de SQL server de la siguiente manera
SQLDMO.SQLServer server = new SQLServer();
server.Connect("localhost\\sql2000","sa","sa");
Luego obtenemos una instancia de la base con la que nos queremos conectar
SQLDMO.Database database = (SQLDMO.Database)server.Databases.Item
("baseQueQuiero",null);
Estamos a un simple ForEach de listar las tablas de la base de datos
List<SQLDMO.Table> tablasPendienteProcesar = new List<SQLDMO.Table>();
foreach (Table tabla in database.Tables)
{
tablasPendienteProcesar.Add(tabla);
}
A cada tabla le podemos pedir el un script con el CREATE sql necesario para crear su estructura. Aqui agregaremos los script a un stringBuilder y luego los mostraremos en un RichTextBox
StringBuilder sb = new StringBuilder();
foreach (SQLDMO.Table tabla in tablasProcesadas)
{
sb.Append(tabla.Script(SQLDMO_SCRIPT_TYPE.SQLDMOScript_Default, null, null, SQLDMO_SCRIPT2_TYPE.SQLDMOScript2_Default));
}
this.richTextBox1.Text += sb.ToString();
Por ultimo nos desconectamos del servidor
server.DisConnect();