Como muchos programadores de ASP.NET saben (y también se ha comentado aquí en otras ocasiones) en la carpeta "C:\Windows\Microsoft .NET\Framework\v2.0.xxxx" existe un ejecutable, aspnet_regsql.exe, que permite crear la estructura de tablas necesarias por ASP.NEt para almacenar la información de sus proveedores en SQL Server. Sirve tanto para SQL Server 2005 como para versiones más antiguas, como la 2000.

La estructura de tablas creada sirve para almacenar todo tipo de información implementada mediante proveedores de tipo "SQLProvider" que vienen con ASP.NET: autenticación y autorización (usuarios y roles), perfiles, Webparts, sesiones, eventos, configuración y mapas de sitios.

Podemos lanzar ese ejecutable para obtener un sencillo asistente gráfico que nos permitirá crear esta estructura de tablas y procedimientos almacenados en cualquier base de datos. Pero además podemos ejecutar aspnet_regsql.exe desde la línea de comandos para crear esta estructura automáticamente durante las instalaciones o bien para obtener un mayor control sobre el proceso como veremos enseguida.

Una de las cosas más interesantes de usar aspnet_regsql.exe desde la línea de comandos y no en modo gráfico es que nos permite obtener un control mucho mayor sobre lo que vamos a crear. Por ejemplo, si nuestra aplicación no utiliza webParts ni otras cuestiones avanzadas y sólo queremos gestionar usuarios (pero no roles) con Membership ¿para qué vamos a crear todas las tablas y procedimientos?. Podemos escribir en este caso lo siguiente:

aspnet_regsql.exe -S miSQLServer -E -d MiBD -A m

¿Complicado? ¡Que va! Sólo hay que conocer los parámetros.

La línea de comandos nos da muchas más opciones de control. Si escribimos aspnet_regsql.exe -? obtendremos una lista completa. Las más interesantes son:

- S <servidor>: permite especificar el servidor con el que conectarse.
- E: indica que se deben usar las credenciales de Windows actuales para conectarse.
- U <usuario>: si preferimos especificar un inicio de sesión de SQL Server podemos introducir el nombre de usuario.
- P <clave>: idem que el anterior para la contraseña.
- d <base de datos>: nombre de la base de datos a usar dentro del servidor.
- C <cadena con>: si lo preferimos introducimos una cadena de conexión normal y no tenemos que usar todo lo anterior.
- A: agrega una función de proveedor a la base de datos. Podemos especificar 'all' para que meta todas o una de la siguiente lista para algo parcial como en el ejemplo:

m: Membership
r: Roles
p: Profile
c: Personalización
w: eventos

Si queremos indicar ma´s de una basta con escribirlas seguidas: -A mrp.
- R: esta sirve para retirar funcionalidades si es eso lo que queremos. Tiene las mismas opcioens que el anterior.
-sqlexportonly <archivo>: Si indicamos esto se genera un script SQL para crear las opciones elegidas, pero no se envía a ninguna base de datos. Útil para meterlo en nuestra propia rutina de inicalización.

Esta última opción de generar el script en un archivo es quizá la menos conocida pero a la vez la más útil de todas.

Existen una serie de parámetros adicionales que se usan sólo para trabajar con la caché de SQL en versiones antiguas de SQL Server (7.0 y 2000).

Espero que lo encuentres útil.

💪🏻 ¿Este post te ha ayudado?, ¿has aprendido algo nuevo?
Pues NO te pido que me invites a un café... Te pido algo más fácil y mucho mejor