Mi primera base de datos SqlServer Express con VWD

¿Cómo se crear una base de datos SQLServer Express con el Visual Web Developer?
Los que ya lo hayan hecho se extrañarán de que esto sea una pregunta, porque es muy sencillo llevarlo a cabo... pero los que no lo hayan hecho nunca tendrán un mar de dudas al respecto.

Y es que la mayoría de tutoriales explica, y muy bien, las excelencias de ADO.NET, los controles de datos, etc. Pero pocos hay que simplemente creen una base de datos paso a paso sobre la que poder empezar a trabajar. Así que pongámonos manos a la obra, pues en muy poquitos pasos vamos a crear un base de datos, una tabla y algún que otro procedimiento almacenado.

Crear una base de datos SQLServer Express
SQLServer Express es el motor de base de datos que Microsoft proporciona gratuitamente. Es ideal para probarla en entornos de desarrollo, pero nunca para entornos de trabajo.

El Visual Web Developer trabaja a las mil maravillas con SqlServer Express.

Como sabéis en ASP.NET existen ciertas carpetas con nombre especiales que tienen funcionalidades específicas. En nuestro caso nos interesa la carpeta App_Data, preparada para almacenar todo tipo de datos. En especial, nosotros la debemos usar para crear nuestra base de datos.

1.- Creamos la carpeta App_Data (si no está creada ya) y obtenemos esto:

Upload/crearbbdd.jpg

2.- Botón de la derecha --> Añadir un nuevo Item
Upload/crearbbdd-2.jpg

3.- Creamos una base de datos y la nombramos "personal.mdf"

Upload/crearbbdd-3.jpg


4.- Con lo que la base de datos queda ubicada en nuestra carpeta App_Data.

¡¡Ya tenemos nuestra base de datos creada!!


Creación de tablas
Para manejar cualquier cosa de la base de datos deberemos entrar en el "Database Explorer", lo que conseguimos sin más que hacer doble click sobre el fichero "personal.mdf":

Upload/creartabla.jpg


Vamos a crear un tabla presionando con el botón de la derecha sobre Table --> añadir nueva tabla.

Obtendremos una tabla vacía:

Upload/creartabla-2.jpg

Vamos a rellenarla con dos campos ejemplo:
- Un entero llamado Id, que debe ser autonumérico (Identity) y clave principal.
- Un nvarchar(50) llamado Texto

1.- Creamos los campos
Upload/creartabla-3.jpg

2.- Hacemos que la clave sea un identity y la asignamos como clave principal

Upload/creartabla-4.jpg    
Upload/creartabla-5.jpg

Finalmente la guardamos con el nombre que queramos (por ejemplo Table1) y ya tenemos nuestra primera tabla


Crear un procedimiento almacenado
El "modo tradicional" de interactuar con una base de datos era con simples sentencias SQL que le mandamos desde nuestro código a la base de datos. Con los procedimientos almacenados, esas sentencias SQL están ubicadas físicamente en el propio motor de base de datos, ganando muchísimo en velocidad y seguridad.

Nosotros vamos a crear dos procedimientos almacenados sencillos, para ver cómo funciona el mecanismo de creación.

Volviendo a nuestro "database explorer" presionamos botón de la derecha sobre "Procedimientos almacenados" o "Stored Procedures" y añadimos uno nuevo:

Upload/crearsp.jpg

La primera linea es la declaración de creación del procedimiento almacenado (CREATE PROCEDURE).
"dbo" es el propietario de la base de datos y "StoredProcedure1" es el nombre de la base de datos. Nosotros vamos a cambiar ese nombre por "Insertar".

Las siguiente líneas (que por defecto aparecen comentadas) son los parámetros de entrada/salida del procedimiento almacenado. Por ejemplo, nosotros vamos a insertar un registro a nuestra Table1, por lo que el parámetro de entrada será el Texto.

Quedaría por tanto así:

Upload/crearsp-2.jpg

Por defecto, los procedimientos almacenados devuelven un entero indicando la cantidad de registros que se han visto afectados por la acción. Por ejemplo, modificar un registro nos devolvería un "1", y los mismo para borrar o seleccionar. La cuestión es que pocas veces es útil esa información, por eso el programa nos ofrece (dejando comentado) la opción de forzar a que el procedimiento almacenado no nos devuelva ninguna información al respecto. Descomentamos pues la línea "SET NOCOUNT ON" y de ese modo ahorramos en ancho de banda y mejoramos en velocidad.

Y ahora viene la parte que más me gusta: insertar el SQL. Bajo "SET NOCOUNT ON" haremos click en el botón secundario y seleccionaremos "insert SQL"

Upload/crearsp-3.jpg

Elegimos la tabla sobre la que queremos trabajar y presionamos sobre "Add":

Upload/crearsp-4.jpg

Por defecto nos aparece una sentencia INSERT en el cuadro de texto donde se ubica el SQL, pero lo podemos cambiar sin más que presionar sobre el botón de la derecha y elegir...

Upload/crearsp-5.jpg

Para crear nuestra sentencia SQL de inserción, no tenemos más que jugar un poco con el QueryBuilder de modo que obtenemos esto:

Upload/crearsp-6.jpg


Cuando ya tengamos la sentencia SQL formada, presionamos sobre OK y volveremos a nuestro procedimiento almacenado:

Upload/crearsp-7.jpg

¡Ya tenemos nuestro procedimiento almacenado hecho!

Pero vamos a probarlo. Primero debemos guardarlo. Al hacerlo veremos que queda todo igual, excepto que "CREATE" cambia por "ALTER". Resulta obvio decir que como el procedimiento almacenado ya está creado, lo que hagamos ahora será una modificación o alteración. Pero a nosotros eso no nos va a afectar en nada. Simplemente guardaremos como si fuera un fichero cualquiera y ya está.

Una vez hayamos guardado el procedimiento almacenado, hacemos botón de la derecha --> execute

Upload/crearsp-8.jpg

Y nos aparecerá una ventana donde nos pide que le demos valor a los parámetros de entrada del procedimiento almacenado. En este caso, sólo tenemos un parámetro. Le damos un valor cualquiera y presionamos OK:

Upload/crearsp-9.jpg



Vemos el resultado que nos da la ventana de salida u "output":

Upload/crearsp-10.jpg

¿Verdad que es sencillo?

Ahora vamos a hacer rápidamente un procedimiento almacenado que haga un SELECT de todos los registros dentro de Table1:

Upload/crearsp-11.jpg

Le hacemos un execute y obtenemos:

Upload/crearsp-12.jpg


Pues bien, eso es todo, espero que ahora sea más sencillo crear un BBDD con SqlServer Express