Compartir a través de


Trabajar con tablas

por Saad Ladki

Requisitos previos

En este tutorial se da por supuesto el siguiente entorno:

  1. El Administrador de bases de datos de IIS se instala en el servidor web (<vínculo a la descarga del Administrador de bases de datos>).
  2. Un servidor de bases de datos (que podría residir en la misma máquina física que el servidor web)

Configuración del escenario

Vamos a usar un escenario para este tutorial y a suponer que nos gustaría crear una lista de control de acceso para los recursos de nuestro sitio www.fabrikam.com ficticio. Para ello, crearemos 2 tablas:

La primera tabla, "FabrikamUsers", contendrá el Id. de usuario, el nombre de usuario y la dirección de correo electrónico de cada usuario.
La segunda tabla, "AccessControls", contendrá una referencia a un Id. de usuario, una dirección URL de recurso y si el usuario puede acceder al recurso. Screenshot of Fabrikam Users table and Access Controls table. The Fabrikam Users table contains the text user I D, username, and email address. The AccessControls table has the text A C I D, user I D, Resource U R L, and Is User Allowed.

Creación de una tabla

Para crear una tabla:

  1. Abra el Administrador de Internet Information Services (IIS) .

  2. Vaya al Administrador de bases de datos y expanda el nodo de conexión de base de datos (para obtener más información sobre la creación de conexiones a una base de datos, vea Aspectos básicos del Administrador de bases de datos de IIS).

  3. En el nodo "Tablas", haga clic con el botón derecho y seleccione "Nueva tabla". Screenshot of Tables node. Tables option is selected and New Table is highlighted.

    Aparecerá una nueva pestaña en el área del editor. Dedique un momento a conocer bien los botones de la barra de herramientas:

    1. Nueva columna: permite agregar una nueva columna a la definición de tabla.
    2. Eliminar columna: permite quitar una columna existente para la definición de tabla.
    3. Índices o claves: permite definir un índice o una clave principal en la tabla.
    4. Relaciones: permite definir una relación de clave externa en la tabla.
    5. Guardar: permite guardar los cambios en la tabla.

    Screenshot of editor toolbar. The buttons for New Column, Delete Column, Indexes and Keys, Relationships, and Save are highlighted.

  4. Haga clic en "Nueva columna" en la barra de herramientas. Se crea una columna y aparece el panel "Propiedades de columna".

  5. En "Propiedades de columna", haga lo siguiente:

    1. Escriba "UserId" como nombre de la columna.
    2. Establezca "Permitir valores nulos" en "False".
    3. Establezca "Tipo de datos" en "int".
    4. Deje "Valor predeterminado" en blanco.
    5. Establezca "IsIdentity" en "True".

    Screenshot of Column Properties pane. Is Identity option is highlighted and the text to the right of it is set to True.

  6. Ahora vamos a convertir este campo en una clave principal haciendo clic en el icono "Índices o claves". Se abrirá un cuadro de diálogo nuevo. Screenshot of editor toolbar. The Indexes and Keys button is highlighted.

  7. En el cuadro de diálogo, haga clic en el botón "Agregar" y rellene la información de la clave principal de la siguiente manera:

    1. Establezca "Columns" en "UserId".
    2. Establezca "Is Unique" en "True".
    3. Establezca "Type" en "Primary Key".
    4. Establezca "Name" en "PK_UserId".

    Screenshot of the Indexes and Keys pane. Under the heading Identity, the text Name is selected.

  8. Para cerrar la ventana, haga clic en Cerrar.

  9. Agregue otra columna para el nombre de usuario haciendo clic en "Nueva columna" en la barra de herramientas.

  10. En "Propiedades de columna", haga lo siguiente:

    1. Escriba "Nombre de usuario" como nombre de la columna.
    2. Establezca "Permitir valores nulos" en "False".
    3. Establezca "Tipo de datos" en "varchar".
    4. Establezca "Longitud" en 50.
  11. Por último, agregue otra columna para la dirección de correo electrónico haciendo clic en "Nueva columna" en la barra de herramientas.

  12. En "Propiedades de columna", haga lo siguiente:

    1. Escriba "Correo electrónico" para el nombre de la columna.
    2. Establezca "Permitir valores nulos" en "True".
    3. Establezca "Tipo de datos" en "varchar".
    4. Establezca "Longitud" en 100.
  13. Haga clic en "Guardar" en la barra de herramientas y se abrirá un cuadro de diálogo "Guardar". Screenshot of Toolbar. Save button is highlighted.

  14. En el "Nombre de tabla", escriba "FabrikamUsers". También puede especificar un esquema o dejar el campo "Nombre de esquema" vacío a fin de usar el esquema predeterminado para el usuario de la base de datos. Screenshot of save dialog. In the Table Name box the text Fabrikam Users is written. Use default schema is selected.

Ahora, vamos a definir la tabla "AccessControls". Seguiremos pasos similares a los anteriores:

  1. En el nodo "Tablas", haga clic con el botón derecho y seleccione "Nueva tabla". Aparecerá una nueva pestaña en el área del editor.

  2. Haga clic en "Nueva columna" en la barra de herramientas. Se crea una columna y aparece el panel "Propiedades de columna".

  3. En "Propiedades de columna", haga lo siguiente:

    1. Escriba "ACId" como nombre de la columna.
    2. Establezca "Permitir valores nulos" en "False".
    3. Establezca "Tipo de datos" en "int".
    4. Deje "Valor predeterminado" en blanco.
    5. Establezca "IsIdentity" en "True".
  4. Ahora vamos a convertir este campo en una clave principal haciendo clic en el icono "Índices o claves". Se abrirá un cuadro de diálogo nuevo.

  5. En el cuadro de diálogo, haga clic en el botón "Agregar" y rellene la información de la clave principal de la siguiente manera:

    1. Establezca "Columns" en "ACId".
    2. Establezca "Is Unique" en "True".
    3. Establezca "Type" en "Primary Key".
    4. Establezca "Name" en "PK_ACId".
  6. Para cerrar la ventana, haga clic en Cerrar.

  7. Agregue otra columna para el usuario al que se hace referencia haciendo clic en "Nueva columna" en la barra de herramientas.

  8. En "Propiedades de columna", haga lo siguiente:

    1. Escriba "UserId" como nombre de la columna.
    2. Establezca "Permitir valores nulos" en "False".
    3. Establezca "Tipo de datos" en "int".
    4. Establezca "IsIdentity" en "False".
  9. Agregue otra columna para el recurso haciendo clic en "Nueva columna" en la barra de herramientas.

  10. En "Propiedades de columna", haga lo siguiente:

    1. Escriba "ResourceURL" como nombre de la columna.
    2. Establezca "Permitir valores nulos" en "False".
    3. Establezca "Tipo de datos" en "varchar".
    4. Establezca "Longitud" en 200.
  11. Por último, agregue otra columna para especificar el acceso con el botón derecho haciendo clic en "Nueva columna" en la barra de herramientas.

  12. En "Propiedades de columna", haga lo siguiente:

    1. Escriba "IsUserAllowed" como nombre de la columna.
    2. Establezca "Permitir valores nulos" en "False".
    3. Establezca "Tipo de datos" en "Bit".
    4. Establezca "Valor predeterminado" en "False".
  13. Haga clic en "Guardar" en la barra de herramientas y se abrirá un cuadro de diálogo "Guardar".
    Screenshot of Database Manager. Column Name A C I d is highlighted.

  14. En el "Nombre de tabla", escriba "AccessControls". También puede especificar un esquema o dejar el campo "Nombre de esquema" vacío a fin de usar el esquema predeterminado para el usuario de la base de datos.

Modificación de una tabla existente

El Administrador de bases de datos permite editar la definición de una tabla existente. Más concretamente, puede hacer lo siguiente:

  • Agregar, modificar o eliminar nuevas columnas.
  • Agregar, modificar o eliminar una clave principal.
  • Agregar, modificar o eliminar una relación de clave externa.

Ahora que hemos creado las dos tablas, "FabrikamUsers" y "AccessControls", vamos a vincularlas juntas. Tendremos que editar la tabla "AccessControls" y agregar una relación de clave externa a la tabla "FabrikamUsers":

  1. Abra el Administrador de IIS y vaya al Administrador de bases de datos.
  2. Expanda el nodo de conexión de base de datos en la vista de árbol del Administrador de bases de datos (para obtener más información sobre la creación de conexiones a una base de datos, vea Aspectos básicos del Administrador de bases de datos de IIS).
  3. Expanda el nodo Tablas. Ahora debería ver una lista de todas las tablas de base de datos, incluidas "FabrikamUsers" y "AccessControls".
  4. Seleccione "AccessControls" y haga clic en "Abrir definición de tabla" en la barra de herramientas. Se abre una vista de diseño de tabla y se muestran las columnas que hemos creado en "Crear una nueva tabla".
    Screenshot of Database Manager tree view. Tables node is expanded. Open Table Definition is selected.
  5. En la barra de herramientas de la vista de diseño de tabla, haga clic en "Relaciones". Se abrirá el cuadro de diálogo Relaciones de clave externa.
    Screenshot of Database Manager dialog. Within the Table pane the Relationships button is highlighted.
  6. Haga clic en Agregar. Se muestra un nuevo editor de relaciones de clave externa.
  7. En el editor de relaciones de clave externa, seleccione las "Especificaciones de tablas y columnas" y haga clic en el botón de puntos suspensivos "...". Se abre el cuadro de diálogo "Tablas y columnas". Screenshot of the Foreign Key Relationships dialog box. F K underscore Access Controls underscore one is selected in the left pane. In the right pane, Tables and Columns Specification is selected and the ellipsis button is highlighted.
  8. En el campo "Nombre de relación", escriba "FK_AccessControlsForUsers".
  9. En la lista desplegable "Tabla de claves principales", seleccione "FabrikamUsers". Ahora debería ver una lista desplegable de claves principales en la tabla "FabrikamUsers". Asegúrese de que "UserId" está seleccionado.
  10. En la segunda lista desplegable, debería ver una lista de columnas de "AccessControls". Seleccione "UserId" y haga clic en Aceptar para cerrar el cuadro de diálogo.
    Screenshot of the Tables and Columns dialog box. In the Relationship name box F K underscore Access Controls For Users is written. In the Primary Key Table box d b o dot Fabrikam Users is written. In the second drop down, User I D is selected.
  11. Haga clic en Cerrar en el cuadro de diálogo "Relaciones de clave externa".
    Screenshot of Foreign Key Relationships dialog box. In the left pane F K underscore Access Controls For Users is selected. In the right pane Tables and Columns Specification is selected.
  12. Haga clic en "Guardar" para actualizar las tablas. Acabamos de crear una relación entre las tablas "FabrikamUsers" y "AccessControls".

Cambio de datos de la tabla

El Administrador de bases de datos permite modificar los datos de una tabla existente. Más concretamente, puede hacer lo siguiente:

  • Agregar nuevas filas.
  • Modificar un valor en una fila existente (disponible para los tipos de datos admitidos, <vínculo a tipos de datos admitidos>).
  • Eliminar una fila existente.

Comencemos a rellenar nuestra tabla "FabrikamUsers" y "AccessControls" con información de usuario:

  1. Abra el Administrador de IIS y vaya al Administrador de bases de datos.
  2. Expanda el nodo de conexión de base de datos en la vista de árbol del Administrador de bases de datos (para obtener más información sobre la creación de conexiones a una base de datos, vea Aspectos básicos del Administrador de bases de datos de IIS).
  3. Expanda el nodo Tablas. Ahora debería ver una lista de todas las tablas de base de datos, incluidas "FabrikamUsers" y "AccessControls".
  4. Haga clic con el botón derecho en "FabrikamUsers" y seleccione "Mostrar datos de tabla". Ahora debería ver los datos dentro de la tabla. También debe haber una fila precedida por el símbolo "*" que puede usar para escribir nuevos datos. Screenshot of Tables node and list of database tables. The Table title d b o dot Fabrikam Users is selected. Show Table Data is highlighted.
  5. En la nueva fila (*), haga clic en la columna "Nombre de usuario" y escriba "John Doe". A continuación, haga clic en la columna "Correo electrónico" y escriba "JohnDoe@fabrikam.com". Screenshot of Table node and list of database tables in the left pane. In the right pane under the heading User I D a number one is written and highlighted in the first column and first row.
  6. Cuando haya terminado de escribir información para la nueva fila, presione Entrar. La información se ha guardado en la base de datos. Observe que el campo "UserId" se rellena automáticamente con un valor incremental, ya que está marcado como una identidad.
  7. Agregue algunas filas más de nombres de usuario y direcciones de correo electrónico de ejemplo.
  8. Haga clic con el botón derecho en "AccessControls" y seleccione "Mostrar datos de tabla". Ahora debería ver los datos dentro de la tabla. También debe haber una fila precedida por el símbolo "*" que puede usar para escribir nuevos datos.
  9. En la nueva fila (*), haga clic en la columna "UserId" y escriba "1". Al escribir este valor UserId, se apuntará al primer registro de la tabla "FabrikamUsers" (que debe ser "John Doe" según nuestro ejemplo).
  10. A continuación, haga clic en la columna "ResourceURL", escriba "admin.aspx" y luego "True" en la columna IsUserAllowed. Esto implica que el usuario "John Doe" puede acceder a la página admin.aspx de nuestro sitio ficticio.
    Screenshot of Database Manager dialog box. In the left pane is the Tables node. In the right pane in the column titled A C I d the number one is written and highlighted.
  11. Agregue algunas filas más de derechos de acceso de ejemplo para otros usuarios.

Ahora que tenemos algunos datos en la tabla, vamos a modificar y eliminar una fila existente:

  1. Haga clic en cualquier celda de tabla que quiera modificar. Escriba un nuevo valor en la celda. Observe que aparece un lápiz junto a la fila que está editando.
  2. Haga clic en otra celda o cierre la tabla para guardar la información. Observe que la información se guarda en el servidor y el icono de lápiz desaparece.
  3. Ahora seleccione una fila haciendo clic en la flecha situada a la izquierda de la fila y, después, haga clic en el botón "Eliminar" de la barra de herramientas. Un cuadro de diálogo solicita confirmación antes de eliminarlo. Screenshot of the Table. The Delete button in the toolbar is highlighted. The fourth row is selected.
  4. Si selecciona "Sí", la fila de información se elimina en el servidor.